如何将数组转换为json(java)

6yt4nkrj  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(583)

我想把一个数组转换成一个json对象,比如

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

进入之内

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

我正在使用spring(jacksonxml)。
我试过:

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"]
}

我想要的。

6ojccjat

6ojccjat1#

你正在转变 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));

相关问题