0

我有一个带有 2 个带有 JSONObjects 的 JSONArrays 的 JSONObject。我想知道如何访问位于 JSONObject 中的 JSONArray 中的 JSONObjects?(JSON inception!)。

澄清(即使我对写这个感到困惑)

我首先得到一个 JSONObject 这个对象包含 2 个 JSONArrays 这 2 个数组有 X 和 Y 数量的 JSONObjects。

我如何达到“最深”的 JSONObjects?如何“展开”第一个 JSONObject 以获得前 2 个 JSONArray?

有什么提示或技巧可以分享吗?

4

3 回答 3

2

尤可以用这样的东西new JSONObject(json).getJSONArray(arrayname1).getJSONObject(positionx)
json是 JSON 响应字符串。arrayname1是您的第一个数组的名称。并且poitionx是来自X JSONObjects 的任何位置。
同样,您可以将new JSONObject(json).getJSONArray(arrayname2).getJSONObject(positiony)其用于另一个。

于 2012-05-04T09:53:02.117 回答
0

有什么提示或技巧可以分享吗?

是的,使用像Google 的GSON这样的 JSON 库。

这是使用它的参考。http://java.sg/parsing-a-json-string-into-an-object-with-gson-easily/

祝你好运!

于 2012-05-04T09:49:20.967 回答
0

这是示例。假设我们有一个 JSONObject“Space”,它有两个数组:一个和两个。

                 HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("url");
                 HttpResponse  response = httpclient.execute(httppost);
                 HttpEntity entity = response.getEntity();
                 InputStream instream = entity.getContent();
                 String result= convertStreamToString(instream);
                 JSONObject json=new JSONObject(result);
                 JSONObject resp= (JSONObject) json.get("response");                                  
                 JSONObject Space=resp.getJSONObject("Space");
                 JSONArray One=Space.getJSONArray("one");
                 int Length=One.length();
                 for(int i=0;i<length;i++)
                 {
                  JSONObject item = (JSONObject) items.get(j);
                   String x=item.getString("x);
                   String y=item.getString("y");
                   System.out.println("x = "+x+" , y = "+y);
                 }

以同样的方式,您可以使用第二个数组。

于 2012-09-19T13:41:06.810 回答