web-dev-qa-db-fra.com

Créer un objet JSON en utilisant Jackson dans Java

J'ai besoin de créer une chaîne JSON comme ci-dessous en utilisant Jackson. Je sais que la même question a déjà reçu une réponse ici: Création d’un objet json avec jackson

Mais ma chaîne JSON attendue est un peu différente de celle de l'exemple ci-dessus.

Comment puis-je former l'objet JSON formaté ci-dessous dans Java en utilisant uniquement Jackson? De plus, je ne préfère pas créer un POJO distinct pour atteindre cet objectif.

Production attendue:

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

Essaye ça:

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

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

((ObjectNode) rootNode).set("obj1", childNode1);

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

((ObjectNode) rootNode).set("obj2", childNode2);

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

((ObjectNode) rootNode).set("obj3", childNode3);


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