【问题标题】:How to convert Nested HashMap to Jettison JSONObject如何将嵌套 HashMap 转换为 Jettison JSONObject
【发布时间】:2020-09-17 08:08:50
【问题描述】:

我必须将 Map> 转换为 Codehaus-Jettison JSONObject。

我知道使用 Gson 和其他库有更简单的方法来实现这一点,但在这种情况下需要使用 Jettison。

我从文档中了解到我可以做到:

Map<String, Map<String, String>> tagsMap = new HashMap<>();
Map<String, String> tags = new HashMap<>();
tags.put("tag1", "value1");
tags.put("tag2", "value2");
tags.put("tag3", "value3");

tagsMap.put("table1", tags);
tagsMap.put("table2", tags);
tagsMap.put("table3", tags);

JSONObject jsonObject = new JSONObject(tagsMap);

System.out.println(jsonObject.toString());

new JSONObject(map) 似乎只适用于 Map 并且对于上面的代码,我最终得到了这个不正确的输出:

{"table3":"{tag1=value1, tag2=value2, tag3=value3}","table2":"{tag1=value1, tag2=value2, tag3=value3}","table1":"{tag1=value1, tag2=value2, tag3=value3}"}

我想要的输出应该是正确的 JSON 内容,像这样:

{"table3":{"tag1":"value1", "tag2":"value2", "tag3":"value3"},"table2":{"tag1":"value1", "tag2":"value2", "tag3":"value3"},"table1":{"tag1":"value1", "tag2":"value2", "tag3":"value3"}}

有没有什么办法可以做到这一点ONLY Jettison?

【问题讨论】:

  • 对于 jettison 1.4.1,这可以按您的意愿工作。你用的是什么版本?
  • @michalk 你是对的。我使用的是 1.2 版。

标签: java json jettison


【解决方案1】:

您似乎正在使用旧版本的 jettison,它在 jettison 1.3 版及更高版本上运行良好。升级库版本,就可以正常使用了。

【讨论】:

    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2020-02-02
    • 2014-02-26
    相关资源
    最近更新 更多