dali sārib:
Tengo un HashMap, que tengo que analizar en JSON:
HashMap<String, Integer> worders = new HashMap<>();
Tengo que analizar en una matriz JSON de objetos. Valores actuales:
{"and": 100},
{"the": 50}
formato JSON sea necesario:
[
{"word": "and",
"count": 100},
{"word": "the",
"count": 50}
]
Me he dado cuenta de que necesito utilizar un bucle para ponerlo en el formato correcto, pero no sabe dónde o cómo empezar.
También he utilizado el ObjectMapper () para escribir como JSON, sin embargo, que no corrige el formato, gracias por la ayuda.
Tim Biegeleisen:
En realidad no tiene que crear una clase formal de Java para hacer esto. Podemos tratar de crear una ArrayNode
, y luego añadiendo niño JsonNode
objetos que representan cada entrada en el mapa hash originales.
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);