Erstellen Sie ein JSON-Objekt mit Jackson in Java [duplicate]

Lesezeit: 2 Minuten

Benutzeravatar von Shashank Shekher
Shashank Shekher

Ich muss mit Jackson eine JSON-Zeichenfolge wie unten erstellen. Ich weiß, dass eine ähnliche Frage hier bereits beantwortet wurde: Erstellen eines JSON-Objekts mit Jackson

Aber meine erwartete JSON-Zeichenfolge unterscheidet sich ein wenig von der im obigen Beispiel.

Wie kann ich das unten formatierte JSON-Objekt in Java nur mit Jackson erstellen? Außerdem ziehe ich es nicht vor, ein separates POJO zu erstellen, um dies zu erreichen.

Erwartete Ausgabe:

{
    "obj1": {
        "name1": "val1",
        "name2": "val2"
    },
    "obj2": {
        "name3": "val3",
        "name4": "val4"
    },
    "obj3": {
        "name5": "val5",
        "name6": "val6"
    }
}

  • @Yogesh_D Wenn Sie das Ausgabeformat meiner Frage und das von Ihnen erwähnte sehen, unterscheiden sie sich ein wenig. Ich brauche die Ausgabe in meiner Frage genau im oben genannten Format.

    – Shashank Shekher

    5. Dezember 2016 um 6:04 Uhr

  • Sie möchten diesen JSON-String also in Java POJO konvertieren?

    – Arsen Dawtyan

    5. Dezember 2016 um 6:24 Uhr

  • @ arsendavtyan91 Nein, ich brauche es selbst als JSON-String.

    – Shashank Shekher

    5. Dezember 2016 um 6:26 Uhr

  • Diese Frage ist kein Duplikat. Hätte nicht als Duplikat markiert werden sollen.

    – Sortierer

    22. Juni 2020 um 15:58 Uhr

  • @Jurass Das Erstellen eines POJO hier macht keinen Sinn, da die Eingabe kein fester Typ ist. Es kann sich in vielerlei Hinsicht unterscheiden. Ich hoffe, Sie haben die Frage verständlich gelesen.

    – Shashank Shekher

    23. November 2020 um 3:33 Uhr

Benutzeravatar von Sachin Gupta
Sachin Gupta

Versuche dies:

ObjectMapper mapper = new ObjectMapper();
ObjectNode rootNode = mapper.createObjectNode();

ObjectNode childNode1 = mapper.createObjectNode();
childNode1.put("name1", "val1");
childNode1.put("name2", "val2");

rootNode.set("obj1", childNode1);

ObjectNode childNode2 = mapper.createObjectNode();
childNode2.put("name3", "val3");
childNode2.put("name4", "val4");

rootNode.set("obj2", childNode2);

ObjectNode childNode3 = mapper.createObjectNode();
childNode3.put("name5", "val5");
childNode3.put("name6", "val6");
    
rootNode.set("obj3", childNode3);


String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
System.out.println(jsonString);

  • Ich habe dies versucht, aber ich erhalte immer wieder, dass ObjectNode nicht in einen Typ aufgelöst werden kann

    – Zeusox

    9. April 2019 um 18:01 Uhr

  • Dadurch wird den hinzugefügten Zeichenfolgen ein umgekehrter Schrägstrich hinzugefügt. Wie vermeidet man den Backslash?

    – Deepak Selvakumar

    2. Juli 2019 um 18:12 Uhr

  • @DeepakSelvakumar Wenn Sie diesen Backslash vermeiden möchten, ersetzen Sie ihn writerWithDefaultPrettyPrinter() in der vorletzten Zeile mit writer(). Du bist startklar!

    – Prasannjeet Singh

    22. September 2021 um 19:37 Uhr

1444420cookie-checkErstellen Sie ein JSON-Objekt mit Jackson in Java [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy