【发布时间】:2019-11-27 19:49:34
【问题描述】:
假设我有以下需要转换为 JSON 的 HashMap:
HashMap <String, String> test1 = {k1,v1},{k2,v2},{k3,v3},{k4,v4};
我知道使用 JSONObject 创建 JSON 输出:
JSONObject json = new JSONObject ( test1 );
但是,json 将采用以下格式:
{"k1":"v1","k2":"v2","k3":"v3","k4":"v4"}
我希望输出是这样的:
[{"key":"k1","value":"v1"},
{"key":"k2","value":"v2"},
{"key":"k3","value":"v3"},
{"key":"k4","value":"v4"}]
有人对如何转换为格式化的 JSON 有意见吗?进一步的问题:如果 HashMap 的键是 Set of String 怎么办?
HashMap <String, Set<String>> test1 = {k1,{v1,v2,v3}},{k2,{v4,v5,v6}},{k3,{v7,v8,v9}};
我希望输出是这样的:
[{"key":"k1","value":["v1","v2","v3"]},
{"key":"k2","value":["v4","v5","v6"]},
{"key":"k3","value":["v7","v8","v9"]}]
感谢您的帮助
【问题讨论】:
-
有一些自动的 Object -> JSON 转换器库。 Jackson 是最常用的,GSON 也在那里 :) 两者都允许手动构建,您可以在其中创建
JsonNodes,您可以将其嵌套到另一个中,它们就像嵌套的Map<String, JsonObject> -
@KarolDowbecki 是的,意思是数组。更新了问题。
标签: java json serialization hashmap