【问题标题】:JSONArray to HashMapJSONArray 到 HashMap
【发布时间】:2010-11-29 19:09:47
【问题描述】:

我有一个 JSONArray,我需要获取带有值的 hashmap,因为我需要填充一个流,就像 twitter 一样。 你建议做什么?

【问题讨论】:

  • 哦,是的,我忘了。对不起:)

标签: android json


【解决方案1】:
HashMap<String, String> pairs = new HashMap<String, String>();
for (int i = 0; i < myArray.length(); i++) {
   JSONObject j = myArray.optJSONObject(i);
   Iterator it = j.keys();
   while (it.hasNext()) {
      String n = it.next();
      pairs.put(n, j.getString(n));
   }
}

类似的东西。

【讨论】:

  • 谢谢!这适用于我的情况。唯一的编辑是将pairs.add...替换为pairs.put...
  • 我想建议在for循环之外定义“String n,JSONObject j,Iterator it”。因为如果我们必须处理大量的JSONObjects,堆栈会溢出并且程序可能会变慢。
【解决方案2】:

您可以使用Iterator 获取JsonArrays。或者这样用

例如。 json

{
........
........

 "FARE":[   //JSON Array
    {
    "REG_ID":3,
    "PACKAGE_ID":1,
    "MODEL_ID":9,
    "MIN_HOUR":0
    .......
    .......
    .......
    }
      ]
}
HashMap<String, String> mMap= new HashMap<>();
for (int i = 0; i < myArray.length(); i++) {

   JSONObject j = myArray.optJSONObject(i);
    mMap.put("KEY1", j.getString("REG_ID"));
    mMap.put("KEY2", j.getString("PACKAGE_ID"));
    ............
    ............
}

注意:为了更好的编码使用Iterator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多