Как я могу преобразовать массив в Json (Java) - PullRequest
3 голосов
/ 13 февраля 2020

Я хочу преобразовать массив в Json объект типа

String[] array = {"value1", "value2"};

в

{
  "array": ["value1", "value2"]
}

Я использую Spring (Джексон XML).

Я пытался:

ObjectMapper objectMapper = new ObjectMapper();
ObjectNode jsonNode = objectMapper.createObjectNode();

String[] array = {"value1", "value2"};
jsonNode.put("array", Arrays.toString(array));

System.out.print(jsonNode.toString());

Но результат

{
  "array":"[value1, value2]"
}

А не

{
  "array":["value1", "value2"]
}

, что я хочу получить.

1 Ответ

2 голосов
/ 13 февраля 2020

Вы конвертируете Array строк в строку и добавляете ее в json объект

String[] array = {"value1", "value2"};
String arr = Arrays.toString(array)   //converting array into string

Просто добавьте массив непосредственно в ObjectNode, используя putArray

ArrayNode arrayNode = jsonNode.putArray("array");
Arrays.stream(array).forEach(str->arrayNode.add(str));

или вы также можете использовать addAll напрямую, преобразовав массив в ArrayNode

jsonNode.putArray("array").addAll(objectMapper.valueToTree(array));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...