如何将 json 个字符串列表变成 java 中的一个 JsonNode/Object

How to turn a list of json Strings into one JsonNode/Object in java

我有一些数据被放入列表中,我正在尝试使用 Jackson 的 ObjectMapper class 将它们映射到单个字符串中,这样我就可以将它们转换成 JsonNode 到 return。问题是我不想为映射器手动硬编码逗号来区分每个元素。

从数据库中 return 得到的列表如下所示:

0: {"someKey": "someVal"}
1: {"someKey2": "someVal2"}
2: {"someKey3": "someVal3"}
List<String> responseList = dao.getDetails(something, something2);

for(String row : responseList){
 responseString += row;
}

jsonNode = mapper.readTree(responseString);

生成的 jsonNode 将是:

{"someKey": "someVal"}

objectmapper 忽略其他两个值,因为字符串没有任何逗号来区分它们。如何在不必手动插入逗号和括号的情况下获取字符串列表的单个 JsonNode 响应?谢谢!!

您可以单独解析每一行并将其手动添加到 ArrayNode,而不是将所有内容都连接到一个字符串中,如下所示:

List<String> responseList = Arrays.asList(
        "{\"someKey\": \"someVal\"}",
        "{\"someKey2\": \"someVal2\"}",
        "{\"someKey3\": \"someVal3\"}");

ObjectMapper mapper = new ObjectMapper();
ArrayNode arr = mapper.createArrayNode();
for (String row : responseList) {
    arr.add(mapper.readTree(row));
}
System.out.println(arr);