I’m going around in circles here because there’s about 50 questions on Stack Overflow asking how to get the default jackson behaviour… I don’t want that behaviour so don’t tell me this question has already been answered. Thanks.
I have a simple map HashMap<String, String>
and need to serialise it into a form that a 3rd party app understands. I need the following:
JavaScript
x
[
{
"key": "k1",
"value": "v1"
},
{
"key": "k2",
"value": "v2"
},
]
I do NOT want this: {k1: "v1", k2: "v2", ...}
Anyone who understands the black art of jackson care to share their wisdom?
Advertisement
Answer
JavaScript
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);
}
Output is:
JavaScript
[{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]