这是我的json请求:
<form onsubmit="return validateForm();">
在我的控制器中:
{
{"op":"replace", "path":"/news", "value":"A"},
{"op":"replace", "path":"/videos", "value":"B"},
{"op":"replace", "path":"/photos", "value":"C"}
}
有人可以帮我解决如何删除路径中带有“照片”的节点吗?
答案 0 :(得分:0)
有很多方法可以删除它。
一个是您可以在路径中存储带有“照片”的节点索引,而不是遍历所有索引和调用删除功能,我将在下面提到。
或者维护jsonnode的另一个副本,并在迭代原始副本时从该副本中删除元素。 所以它看起来像这样: -
JsonNode jsonNode = null;
try {
//patchJson is json string (above)
jsonNode = new ObjectMapper().readTree(patchJson);
*JsonNode jsonNode2 = jsonNode.deepCopy();*
*int index = 0;*
*int changedCount = 0;*
for (JsonNode node : jsonNode) {
String path = node.path("path").asText();
if(path.equalsIgnoreCase("/photos"))
{
*((ArrayNode) jsonNode2).remove(index-changedCount);*
*changedCount++;*
}
*index++;*
}
} catch (IOException e) {
e.printStackTrace();
}
此外,您的JSON是一个数组,所以它应该以[]而不是{}开始。