我有一个JSONObject,带有2个带JSONObjects的JSONArrays。我想知道如何访问位于JSONObject中的JSONArray中的JSONObjects?(JSON初始!)。
澄清(即使我对此写这个感到困惑)
我首先得到一个JSONObject 该对象包含2个JSONArrays 这两个数组有X和Y量的JSONObjects。
我如何到达“最深的”JSONObjects?如何“展开”第一个JSONObject以获得前2个JSONArrays?
要分享的任何提示或技巧吗?
答案 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);
}
以同样的方式,您可以使用第二个数组。