如何将 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);
我有一些数据被放入列表中,我正在尝试使用 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);