Montag, Januar 27, 2020

Konvertieren javax.json.JsonObject zu com.fasterxml.jackson.databind-Methode.JsonNode

Ich habe eine javax.json.JsonObject und möchten überprüfen Sie es gegen ein JSON schema. Also ich habe festgestellt, das com.github.fge.json-schema-validator. Aber es funktioniert nur mit com.fasterxml.jackson.databind.JsonNode.

Gibt es eine Möglichkeit meine konvertieren JsonObject in eine JsonNode?

InformationsquelleAutor Maik | 2016-04-08

2 Kommentare

  1. 5

    Folgende Lösung analysiert eine javax.json.JsonObject in einen JSON-string und parst dann den JSON-string in ein com.fasterxml.jackson.databind-Methode.JsonNode mit Jacksons 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;
    }
    • Das ist es! Ich danke Ihnen sehr 🙂
    • was sind die Importe für diese Arbeit?
    • Ist das fehlen der import details der Grund für die downvote?
    • Nein, ich habe nicht downvote, nur ich stolperte über dieses gerade jetzt, und es scheint relevant zu etwas, das ich auf Arbeit bin.
    • Ich werde aktualisieren Sie die Antwort mit dem import von Daten sehr schnell. Jetzt sind die qualifizierten Klassennamen auf der Oberseite der Antwort einen Hinweis darauf geben.
    • die „Json.erstellen…“ – Zeile wirft mich aus, dies könnte ein Fehler, der spezifisch an meinem Umfeld, aber ich kann nicht finden, ein import für diese
    • Bitte siehe javax.json.Json. Es ist Teil der Java-EE-7 und wurde im JSR 353, die Java-API für JSON Processing.
    • objectMapper.readTree ist die buggiest Methode auch immer, wenn Sie mehrere Elemente mit dem gleichen Namen werden Sie übersprungen werden. Mein Rat ist, verwenden Sie nicht readTree (sollte man eigentlich nicht verwenden Jackson sowie, wenn möglich, da so etwas vorhanden ist)

  2. 5
    public JsonNode toJsonNode(JsonObject jsonObj) {
        ObjectMapper objectMapper = new ObjectMapper();
        return objectMapper.readTree(jsonObj.toString());
    }

    dies nur, um es.
    JsonObject.toString () – konvertieren der json-Zeichenfolge, die Sie nicht brauchen, um etwas anderes.

Kostenlose Online-Tests