【问题标题】:How can I convert LinkedHashMap to JSONObject如何将 LinkedHashMap 转换为 JSONObject
【发布时间】:2021-07-11 05:27:12
【问题描述】:

ArrayList条目,这个条目是LinkedHashMap类型的,我想把它转成jsonOject使用,怎么做?

for(Object entry : entries){
            
    JSONObject entryToProcess = (JSONObject) entry;

}

【问题讨论】:

  • JSONObject 的类型是什么?
  • Type: Entries -> LinkedHashMap 我想遍历每个条目并将这些条目转换为 jsonObject。
  • JSONObject 是否属于 org.json.simple.JSONObject 类型?
  • 是的,它是 org.json.simple.JSONObject 的类型

标签: java json spring linkedhashmap


【解决方案1】:

您好,这个转换工具应该可以。 这里发生的是您在 LinkedHashMap 对象上调用方法.getKeys() 来获取所有键。然后对于每个键,您从 LinkedHashMap 检索信息并将其放入 JSONObject

    // Your input LinkedHashMap
    LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();

    // Providing general values for the test
    linkedHashMap.put("First key", "First value");
    linkedHashMap.put("Second key", "Second value");
    linkedHashMap.put("Third key", "Third value");

    // Initialization of the JSONObject
    JSONObject jsonObject = new JSONObject();
    
    // for-each key in the LinkedHashMap get the value and put both of
    // them into the JSON 
    for (String key : linkedHashMap.keySet()) {
        jsonObject.put(key, linkedHashMap.get(key));
    }

你关心的部分应该是for循环。

干杯,

【讨论】:

  • for(Object entry : entries){ // JSONObject entryToProcess = (JSONObject) entry; JSONObject jsonObject = 新 JSONObject(); for (String key : entry.keySet()) { jsonObject.put(key, linkedHashMap.get(key)); } } entry.keySet 未找到。此处出错
  • 对,您在错误的对象上调用该方法。您应该在输入的 LinkedHashMap 对象上调用它以获取密钥集。我会编辑答案
  • for(Object entry : entries){ LinkedHashMap ll = (LinkedHashMap) entry; // JSONObject entryToProcess = (JSONObject) entry; JSONObject entryToProcess = new JSONObject(); for (String key : ll.keySet()) { entryToProcess.put(key, ll.get(key)); } CareContext 上下文 = careContexts.get(entryToProcess.get("careContextReference").toString());我正在这样做,我得到的上下文值为空,但我检查过它存在
【解决方案2】:

简单的 JSONObject 构造函数就可以解决问题

for(Object entry : entries){
  JSONObject entryToProcess = new JSONObject((LinkedHashMap)entry);
}

示例:

LinkedHashMap<String,Object> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("A",1);
linkedHashMap.put("some key","some value");
Map<String, String> someMap = new HashMap<>();
someMap.put("map-key-1","map-value-1");
someMap.put("map-key-2","map-value-2");
linkedHashMap.put("another key",someMap);
JSONObject jsonObject = new JSONObject(linkedHashMap);
System.out.println(jsonObject.toJSONString());

输出:

{
  "another key": {
    "map-key-1": "map-value-1",
    "map-key-2": "map-value-2"
  },
  "A": 1,
  "some key": "some value"
}

【讨论】:

    猜你喜欢
    • 2019-09-17
    • 1970-01-01
    • 2015-10-30
    • 2011-11-03
    • 2017-08-01
    • 2020-06-11
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多