我有这样的json ArrayNode,我需要使用ObjectMapper,ArrayNode,JsonNode或ObjectNode从每个元素中删除例如字段“xxx”。 但没有Gson和@JsonIgnore等。
"arrayNode": [
{
"xxx": {},
"yyy": {}
},
{
"xxx": {},
"yyy": {}
}
]
答案 0 :(得分:1)
我不确定此问题是否已解决。但是以下代码段显示了如何从JSON节点中删除键为xxx
的字段。而且JsonNode
无法执行插入或删除操作,因此您必须将其强制转换为ObjectNode
才能进行进一步的操作。
代码段
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(jsonStr);
rootNode.get("arrayNode").forEach(e -> {
if (e.has("xxx")) {
ObjectNode objNode = (ObjectNode) e;
objNode.remove("xxx");
}
});
System.out.println(rootNode.toString());
控制台输出
{“ arrayNode”:[{“ yyy”:{}},{“ yyy”:{}}]}
答案 1 :(得分:0)
您可以使用此maven依赖关系:http://mvnrepository.com/artifact/org.json/json/20160212
低调和使用非常简单。例如:
JSONObject obj = "YOUR_JSON_STRING";
JSONArray result = obj.getJSONArray("YOUR_STRING_KEY");
for(JSONObject elem : result){
String out = elem.getString("xxx");
}
您可以阅读更多内容:https://developer.android.com/reference/org/json/JSONArray.html 祝你好运