如何从android中的键/值字符串中获取值?

时间:2014-05-12 13:37:15

标签: android json android-json

解析JSON之后:

    JSONArray jsonArray = new JSONArray(ResponseString);
    for (int i = 0; i < jsonArray.length(); i++) {
       JSONObject currentObject = jsonArray.getJSONObject(i);
       String local_parameter = currentObject.getString("LOCAL_PARAMETER");
       }

我得到下一个字符串:

       {"Cost": 200,
        "Space": 33,
        "Accommodation": 1,
        "AirConditioning": 1,
        "Apartment": 1,
        "Campfire": 1,
        "Disability": 1,
        "Grill": 1,
        "Kitchen": 1,
        "Monument": 1,
        "Parking": 1,
        "Scene": 1,
        "Wifi": 1,
        "ClosedArea": 1 }

如何使用键/值获取ArrayList?

GOT解决方案: 只需将currentObject作为JSONObject获取,然后获取所需的值字符串:

 String cost = currentObject.getJSONObject("LOCAL_PARAMETER")
                            .getString("Cost").toString(); 

3 个答案:

答案 0 :(得分:0)

如果你真的想得到一个包含你的值的ArrayList,你可以这样做,即使我不认为这种方式使用JSONObjects是最好的:

final ArrayList<Pair<String, Integer>> values = new ArrayList<Pair<String,Integer>>();
final JSONObject localParams = new JSONObject(local_parameter);
final Iterator<String> iterator = localParams.keys();
while (iterator.hasNext())
{
    final String key = iterator.next();
    values.add(new Pair<String, Integer>(key, localParams.optInt(key)));
}

但我真的不认为这是处理JSONObjects的最佳方法......

答案 1 :(得分:0)

只需再次解析JSON对象以获得所需的值。

JSONArray jsonArray = new JSONArray(ResponseString);
for (int i = 0; i < jsonArray.length(); i++) {
   JSONObject currentObject = jsonArray.getJSONObject(i);
   String local_parameter = currentObject.getString("LOCAL_PARAMETER");
   String tmp = local_parameter.get("Cost").toString(); // this gets the value of Cost
   }

答案 2 :(得分:0)

使用json的键创建一个模型类,并使用gson将其解析为模型类。

A a = gson.fromJson(jsonRes.toString(),A.class);
here A is your model class and a is the instance of A
相关问题