HashMap для объекта Json Array - Java - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть HashMap, который мне нужно проанализировать в JSON:

HashMap<String, Integer> worders = new HashMap<>();

Мне нужно разобрать его в массив объектов JSON. Текущие значения:

{"and": 100},
{"the": 50}

Необходимый формат JSON:

[
{"word": "and",
"count": 100},
{"word": "the",
"count": 50}
]

Я понял, что мне нужно использовать цикл, чтобы поставить егов правильный формат, но не уверен, где и как начать.

Я также использовал ObjectMapper (), чтобы записать его как JSON, однако это не исправляет формат, спасибо за помощь.

1 Ответ

0 голосов
/ 02 декабря 2018

На самом деле вам не нужно создавать формальный класс Java для этого.Мы можем попытаться создать ArrayNode, а затем добавить дочерние JsonNode объекты, которые представляют каждую запись в вашей исходной хэш-карте.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...