【问题标题】:How can I convert an Array to Json (Java)如何将数组转换为 Json (Java)
【发布时间】:2020-05-29 12:42:30
【问题描述】:

我想将一个数组转换成一个 Json 对象,比如

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

进入

{
  "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 而是传递数组本身,它应该可以正常工作。

标签: java arrays json spring jackson


【解决方案1】:

您正在将Array 的字符串转换为字符串并将其添加到 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));

或者你也可以直接使用addAll,将数组转换成ArrayNode

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2017-04-09
    • 2021-01-16
    • 1970-01-01
    相关资源
    最近更新 更多