JSONA中的JSONArray,如何检索?

时间:2012-05-04 09:40:30

标签: android json arrays

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

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

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

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

要分享的任何提示或技巧吗?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  

要分享的任何提示或技巧吗?

是的,使用来自Google的GSON之类的JSON库。

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

祝你好运!

答案 2 :(得分: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);
                 }

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