如何创建空JsonNode?为父JSON节点设置空节点值失败求助
解决Jackson中无法实例化JsonNode设置空节点的问题
因为JsonNode是抽象类,其构造方法为受保护,所以不能直接用new JsonNode()实例化。根据你需要的"空节点"类型,有以下几种可行方案:
设置JSON null值节点
如果需要将fieldName的值设为JSON中的null,可以通过ObjectMapper的nullNode()方法获取对应节点:
ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = externalSource(); ((ObjectNode) jsonNode).set("fieldName", mapper.nullNode());
设置空Object节点({})
如果需要设置一个空的JSON对象作为值,可创建ObjectNode实例:
// 方式1:通过已有ObjectNode的objectNode()方法创建 JsonNode jsonNode = externalSource(); ((ObjectNode) jsonNode).set("fieldName", ((ObjectNode) jsonNode).objectNode()); // 方式2:通过ObjectMapper创建 ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = externalSource(); ((ObjectNode) jsonNode).set("fieldName", mapper.createObjectNode());
设置空Array节点([])
如果需要设置一个空的JSON数组作为值,可创建ArrayNode实例:
ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = externalSource(); ((ObjectNode) jsonNode).set("fieldName", mapper.createArrayNode());
内容的提问来源于stack exchange,提问作者Mooncrater
相关产品推荐
相关产品推荐

