我有一个javax.json.JsonObject
并希望根据JSON架构验证它。所以我找到了com.github.fge.json-schema-validator
。但它仅适用于com.fasterxml.jackson.databind.JsonNode
。
有没有办法将我的JsonObject
转换为JsonNode
?
答案 0 :(得分:5)
以下解决方案将javax.json.JsonObject
解析为JSON字符串,然后使用Jackson的com.fasterxml.jackson.databind.JsonNode
将JSON字符串解析为ObjectMapper
:
public JsonNode toJsonNode(JsonObject jsonObject) {
// Parse a JsonObject into a JSON string
StringWriter stringWriter = new StringWriter();
try (JsonWriter jsonWriter = Json.createWriter(stringWriter)) {
jsonWriter.writeObject(jsonObject);
}
String json = stringWriter.toString();
// Parse a JSON string into a JsonNode
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
return jsonNode;
}
答案 1 :(得分:2)
public JsonNode toJsonNode(JsonObject jsonObj) {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readTree(jsonObj.toString());
}
这就是它。 JsonObject.toString()将转换为json String,您不需要使用任何其他内容。