序列化 Java 映射为 [{key: "key1, value: "value1"}, {key: "key2, value: "value2"}, ...]
Serialise Java Map as [{key: "key1, value: "value1"}, {key: "key2, value: "value2"}, ...]
我在这里兜圈子,因为 Stack Overflow 上大约有 50 个问题询问如何获得 default jackson 行为...我不想要这种行为,所以别告诉我这个问题已经有人回答了。谢谢。
我有一个简单的地图 HashMap<String, String>
并且需要将其序列化为第 3 方应用可以理解的形式。我需要以下内容:
[
{
"key": "k1",
"value": "v1"
},
{
"key": "k2",
"value": "v2"
},
...
]
我不想要这个:{k1: "v1", k2: "v2", ...}
有懂jackson care黑术的大神分享一下吗?
static class Wrapper {
String key, value;
public Wrapper(String key, String value) {
this.key = key;
this.value = value;
}
}
public static void main(String[] args) throws Exception {
Map<String, String> map = Map.of("key1", "value1", "key2", "value2");
String json = new Gson().toJson(map.entrySet().stream()
.map(e -> new Wrapper(e.getKey(), e.getValue()))
.collect(Collectors.toSet()));
System.out.println(json);
}
输出为:
[{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]
我在这里兜圈子,因为 Stack Overflow 上大约有 50 个问题询问如何获得 default jackson 行为...我不想要这种行为,所以别告诉我这个问题已经有人回答了。谢谢。
我有一个简单的地图 HashMap<String, String>
并且需要将其序列化为第 3 方应用可以理解的形式。我需要以下内容:
[
{
"key": "k1",
"value": "v1"
},
{
"key": "k2",
"value": "v2"
},
...
]
我不想要这个:{k1: "v1", k2: "v2", ...}
有懂jackson care黑术的大神分享一下吗?
static class Wrapper {
String key, value;
public Wrapper(String key, String value) {
this.key = key;
this.value = value;
}
}
public static void main(String[] args) throws Exception {
Map<String, String> map = Map.of("key1", "value1", "key2", "value2");
String json = new Gson().toJson(map.entrySet().stream()
.map(e -> new Wrapper(e.getKey(), e.getValue()))
.collect(Collectors.toSet()));
System.out.println(json);
}
输出为:
[{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]