1

私は JSON が初めてで、json 応答を解析する方法の例をいくつか実装しようとしていますが、正しく取得できません。

応答があり、次の Java コードを使用します。

import org.json.JSONArray;
import org.json.JSONObject;


BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));
final JSONObject obj = new JSONObject(br.readLine());

私が得たものを印刷するJSONObjectと:

{"xml-fragment":{"workItems":[{"id":{"@id":"251","@version":"1"},"visible":true,"state":"OPENED ","header":{"@priority":"50","flags":{"scheduleStatus":"DURING"},"@startDate":"2013-10-15T12:30:57.493Z","説明":"UserReconcile","@distributionStrategy":"OFFER","name":"UserReconcile","itemContext":{"appName":"NpdaProcess","appInstance":"pvm:0a12iq","activityName": "UserReconcile","appID":" -hYCETV8EeOr4-yR8gXd7g","activityID":"pvm:001im4"}}},{"id":{"@id":"252","@version":"0"},"visible":true,"state":"OFFERED","header":{"@priority":"50","flags":{"scheduleStatus":"DURING "},"@startDate":"2013-10-15T12:31:15.263Z","説明":"UserReconcile","@distributionStrategy":"OFFER","name":"UserReconcile","itemContext": {"appName":"NpdaProcess","appInstance":"pvm:0a12ir","activityName":"UserReconcile","appID":"@startDate":"2013-10-15T12:31:15.263Z","description":"UserReconcile","@distributionStrategy":"OFFER","name":"UserReconcile","itemContext":{"appName" :"NpdaProcess","appInstance":"pvm:0a12ir","activityName":"UserReconcile","appID":"@startDate":"2013-10-15T12:31:15.263Z","description":"UserReconcile","@distributionStrategy":"OFFER","name":"UserReconcile","itemContext":{"appName" :"NpdaProcess","appInstance":"pvm:0a12ir","activityName":"UserReconcile","appID":"-hYCETV8EeOr4-yR8gXd7g","activityID":"pvm:001imh"}}}],"totalItems":2,"endPosition":1,"startPosition":0}}

それから私は試します: final JSONArray geodata = obj.getJSONArray("workItems");しかし、それは失敗します

JSONObject["workItems"] not found.

json doc で私が理解していることから、workItems は配列名である必要がありますか、それとも間違っていますか?

4

1 に答える 1

0

workitems 配列はまだ xml-fragment 内にあります。試す

final JSONArray geodata = obj.getJSONObject("xml-fragment").getJSONArray("workItems");
于 2013-10-16T09:35:21.937 に答える