JSONArray转换为HashMap

4

我有一个JSONArray,需要获取其值的哈希映射,因为我需要填充一个流,就像Twitter所做的那样。 你建议我怎么做?


哦,是的,我忘了。 抱歉 :) - Fabian
2个回答

11
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));
   }
}

类似这样的东西。


1
谢谢!这对我的情况有用。唯一的编辑是将“pairs.add…”替换为“pairs.put…”。 - FilmiHero
我想建议将 "String n,JSONObject j,Iterator it" 定义在 for 循环之外。因为如果我们需要处理大量的 JSONObjects,堆栈会溢出,程序可能会变慢。 - Rahal Kanishka

0

您可以使用 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"));
    ............
    ............
}

注意:为了更好的编码,请使用迭代器


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接