【发布时间】:2017-08-04 11:28:42
【问题描述】:
我有一个这种格式的 json:
{
"success": 1,
"value": "[\"1-1\",\"1-2\",\"1-3\"]"
}
成功实际上是在int 和价值是String 的List,我想获得价值 并将这些元素放入@ 987654325@。字符串列表将是:
1-1
1-2
1-3
我实际上希望使用 JsonNode 解析整个 json,但限制我这样做的问题是:
-
"[\"1-1\",\"1-2\",\"1-3\"]"用双引号括起来,所以它 可能被视为字符串。 - 必须去掉字符串中的反斜杠
以下是我尝试过的解决方法,是否有任何优雅/更好(没有正则表达式更好,只需将整个 json 解析为 JsonNode)的方法吗?
ObjectMapper mapper= new ObjectMapper();
JsonNode response = mapper.readTree(payload); //payload is the json string
JsonNode success = response.get("success");
JsonNode value = response.get("value");
if (success.asBoolean()) {
String value = value .toString();
value = value .replaceAll("\"", "").replaceAll("\\[", "").replaceAll("\\]", "")
.replace("\\", "");
return Arrays.asList(value .split(","));
}
【问题讨论】: