dali sārib:
Eu tenho um HashMap que eu preciso analisar em JSON:
HashMap<String, Integer> worders = new HashMap<>();
Eu preciso analisá-lo em uma matriz JSON de objetos. Valores atuais:
{"and": 100},
{"the": 50}
formato JSON necessário:
[
{"word": "and",
"count": 100},
{"word": "the",
"count": 50}
]
Eu percebi que eu preciso usar um loop para colocá-lo no formato correto, mas não sei onde ou como começar.
Eu usei também o ObjectMapper () para escrevê-lo como JSON, no entanto, que não corrige o formato, obrigado por ajuda.
Tim Biegeleisen:
Você realmente não precisa criar uma classe formal de Java para fazer isso. Podemos tentar criar um ArrayNode
, e então adicionando criança JsonNode
objetos que representam cada entrada no seu mapa de hash originais.
HashMap<String, Integer> worders = new HashMap<>();
worders.put("and", 100);
worders.put("the", 50);
ObjectMapper mapper = new ObjectMapper();
ArrayNode rootNode = mapper.createArrayNode();
for (Map.Entry<String, Integer> entry : worders.entrySet()) {
JsonNode childNode = mapper.createObjectNode();
((ObjectNode) childNode).put("word", entry.getKey());
((ObjectNode) childNode).put("count", entry.getValue());
((ArrayNode) rootNode).add(childNode);
}
String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
System.out.println(jsonString);