将javax.json.JsonObject转换为com.fasterxml.jackson.databind.JsonNode

Mai*_*aik 4 json jackson

我有一个javax.json.JsonObject并希望根据JSON模式验证它.所以我找到了com.github.fge.json-schema-validator.但它只适用于com.fasterxml.jackson.databind.JsonNode.

有没有办法把我JsonObject变成一个JsonNode

cas*_*lin 5

以下解决方案将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)


lin*_*hrr 5

public JsonNode toJsonNode(JsonObject jsonObj) {
    ObjectMapper objectMapper = new ObjectMapper();
    return objectMapper.readTree(jsonObj.toString());
}
Run Code Online (Sandbox Code Playgroud)

这只会做到这一点。JsonObject.toString()将转换为json String,您无需使用其他任何东西。