1

解析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?

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

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

3 回答 3

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 的最佳方式......

于 2014-05-12T13:49:27.017 回答
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
   }
于 2014-05-12T13:55:39.770 回答
0

用json的key创建一个模型类,使用gson解析到模型类。

A a = gson.fromJson(jsonRes.toString(),A.class);
here A is your model class and a is the instance of A
于 2014-05-12T13:57:52.403 回答