如何将json字符串列表转换为java中的JsonNode/Object



我有一些数据放入列表中,我试图使用Jackson的ObjectMapper类将它们映射到单个字符串中,以便我可以将它们转换为JsonNode返回。问题是我不想为映射器手动硬编码逗号来区分每个元素。

从数据库返回的列表如下所示:

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,而不是将所有内容连接到String中,如下所示:

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);

最新更新