在Java中读取JSON双维数​​组

时间:2015-06-23 14:01:51

标签: java android arrays json

我试图从JSONObject获取字符串。

我的JSON看起来像这样:

{
    "agent":
    [
        {"name":"stringName1", "value":"stringValue1"},
        {"name":"stringName2", "value":"stringValue2"}
    ]
}

我想从stringName1和stringName2获取值。首先,我试图获得"代理商#34;用这个:

JSONObject agent = (JSONObject) jsonObject.get("agent");

但是,这会引发错误。

您对如何处理有任何想法吗?

2 个答案:

答案 0 :(得分:3)

您正在尝试将JSON数组解析为JSON对象。当然它会给你错误。

请改为尝试:

JSONArray agent = jsonObject.getJsonArray("agent");

// To get the actual values, you can do this:
for(int i = 0; i < agent.size(); i++) {
    JSONObject object = agent.get(i);
    String value1 = object.get("name");
    String value2 = object.get("value");
}

答案 1 :(得分:0)

 String Json=" { agent: [ {name:stringName1, value:stringValue1},{name:stringName2, value:stringValue2}]}";

您正在将Jsonarray解析为JsonObject,这就是您收到错误的原因。

JSONObject obj = new JSONObject(Json);
JSONArray array = obj.getJSONArray("agent");

 for(int i = 0 ; i < array.length() ; i++)
       {
   String strngNameOne=array.getJSONObject(i).getString("name");
   String stringNameTwo=array.getJSONObject(i).getString("value");
   //System.out.println(array.getJSONObject(i));
        }