我有一个javax.json.JsonObject并希望根据JSON模式验证它.所以我找到了com.github.fge.json-schema-validator.但它只适用于com.fasterxml.jackson.databind.JsonNode.
有没有办法把我JsonObject变成一个JsonNode?
以下解决方案将a解析javax.json.JsonObject为JSON字符串,然后将JSON字符串解析为com.fasterxml.jackson.databind.JsonNode使用Jackson的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;
}
Run Code Online (Sandbox Code Playgroud)
public JsonNode toJsonNode(JsonObject jsonObj) {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readTree(jsonObj.toString());
}
Run Code Online (Sandbox Code Playgroud)
这只会做到这一点。JsonObject.toString()将转换为json String,您无需使用其他任何东西。