如何将数组转换为Json格式(Java)

3
我想把一个数组转换成Json对象,就像这样:
String[] array = {"value1", "value2"};

into

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

我正在使用Spring (Jackson 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"]
}

好的,请提供需要翻译的内容。

如果您不调用Arrays.toString而是直接传递数组本身,它应该可以正常工作。 - Dominik Wosiński
1个回答

2
你正在将字符串的数组转换为字符串,并将其添加到JSON对象中。
String[] array = {"value1", "value2"};
String arr = Arrays.toString(array)   //converting array into string

直接使用putArray将数组添加到ObjectNode中即可。

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

或者您也可以通过将数组转换为ArrayNode,直接使用addAll

jsonNode.putArray("array").addAll(objectMapper.valueToTree(array));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接