【问题标题】:How to convert JSONObject to Hashmap?如何将 JSONObject 转换为 Hashmap?
【发布时间】:2020-06-11 07:11:08
【问题描述】:
String jsonString  = "{"name":"kd","isMe":"yes","time":"10:12 AM"},{"name":"you","isMe":"no","time":"10:12 AM"}";

JSONObject jValueObject = new JSONObject(jsonString);

    Iterator<?> values = jValueObject.keys();
    while(values.hasNext()){
        String final_key = (String)values.next();
        String final_value = jValueObject.getString(final_key);
        if (final_value != "")
            map.put(final_key, final_value);

        if (!final_key.equals("")) {
            sbkeys.append(final_key).append(',');
        }
    }
    Log.e("Final_Map", String.valueOf(map));
    itemList = sbkeys.toString();

输出:{name=kd,isMe=yes,time=10:12 AM}

【问题讨论】:

  • 运行此代码时遇到的错误是什么?始终准确回答您的问题。
  • @karthikvishnukumar 我从以前的 JSON 字符串中获取了 String jsonString,我将其转换为 hashmap,如果 mu hashmap 该值是我的字符串,则获取值。这个字符串我想要进入 hashmap 格式,但我得到了输出的迭代

标签: android hashmap


【解决方案1】:

试试这个代码:

HashMap map = new HashMap<String, String>();
Iterator<?> values = jValueObject.keys();
while(values.hasNext()) {
    String final_key = (String)values.next();
    String final_value = jValueObject.optString(final_key, "");
    if (!final_value.equals(""))
        map.put(final_key, final_value);
}
for (k : map.keySet()) {
    Log.d("Final_Map", "map[" + key + "] : " + map.get(k));
}

【讨论】:

    【解决方案2】:

    这是一个重复的问题, 请检查这些答案 Convert JSONObject to Map

    使用来自http://json.org/的Jackson(http://jackson.codehaus.org/)

    HashMap<String,Object> result =
        new ObjectMapper().readValue(<JSON_OBJECT>, HashMap.class);
    

    如果您发现使用 Jackson 有任何困难,可以使用 Gson() (com.google.gson) 库。

    HashMap<String, Object> yourHashMap = new Gson().fromJson(yourJsonObject.toString(), HashMap.class);
    

    【讨论】:

      【解决方案3】:

      首先,如果它是您在字符串中需要的 json 数组,则将您的字符串用方括号括起来。 (我希望您也已经转义了双引号)。

          String jsonString  = "[{\"name\":\"kd\",\"isMe\":\"yes\",\"time\":\"10:12 AM\"},{\"name\":\"you\",\"isMe\":\"no\",\"time\":\"10:12 AM\"}]";
      

      现在是JSONArray 而不是JSONObject。所以要得到Maps的列表,

      JSONArray jValueArray = new JSONArray(jsonString);
      List<Object> listOfMaps = jValueArray.toList();
      System.out.println(listOfMaps);
      

      打印:

      [{isMe=yes, name=kd, time=10:12 AM}, {isMe=no, name=you, time=10:12 AM}]
      

      【讨论】:

      • 我得到类似字符串"{"name":"kd","isMe":"yes","time":"10:12 AM"},{"name":"you" ,"isMe":"no","time":"10:12 AM"}" 。如何在该字符串中添加方括号。
      • String jsonString = "{\"name\":\"kd\",\"isMe\":\"yes\",\"time\":\"10:12 AM\"},{\"name\":\"you\",\"isMe\":\"no\",\"time\":\"10:12 AM\"}"; jsonString = "[" + jsonString + "]";
      • 错误是什么?以及您为 JSON 使用哪个库?
      【解决方案4】:
      JSONObject jObject = new JSONObject(jsonString);
              Iterator<?> keys = jObject.keys();
              while (keys.hasNext()) {
                  map = new HashMap<String, String>();
                  sbkeys = new StringBuilder();
      
                  String key = (String) keys.next();
                  String value = jObject.getString(key);
      
                  try{
                      JSONObject jValueObject = new JSONObject(value);
                      Iterator<?> values = jValueObject.keys();
      
                      while (values.hasNext()) {
                          String final_key = (String) values.next();
                          String final_value = jValueObject.getString(final_key);
      
                          if (!final_value.equalsIgnoreCase("")) {
                              map.put(final_key, final_value);
                              sbkeys.append(final_key).append(',');
                          }
                      }
                  }catch (Exception e){
                      e.fillInStackTrace();
                  }
                  try {
                     //// Your Code..
                  } catch (Exception e) {
                      errorCode = "1";
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-03
        • 2014-02-26
        • 2021-07-11
        • 2015-10-30
        • 2011-11-03
        • 2017-08-01
        相关资源
        最近更新 更多