J'utilise Jackson et je veux remplacer une valeur de ma chaîne JSON, mais je ne sais pas comment dois-je le faire. J'ai une chaîne JSON comme:

        "body": {
            "name": "oldname",
            "label": "1234"}

Je voudrais changer la valeur du nom pour avoir mon Json comme:

        "body": {
            "name": "newname",
            "label": "1234"}

Donc j'ai:

JsonNode parser = objectMapper.readTree(reader);
JsonNode body = parser.path("body");
String newName = "newname";

Avec l'utilisation de

body.path("name").asText().replace("oldname","newname");

Ça ne marche pas.

Comment je peux le faire?

0
Mahdis Ghaffarian 4 mai 2021 à 11:40

1 réponse

Meilleure réponse

Vous pouvez faire comme: (((((objet) corps) .put ("nom", newname);

  • corps.path ("nom"). Astext (). Remplacer ("OldName", "NewName"),

  • Ici, vous simplement remplacer l'opération sur la chaîne renvoyée par la méthode ASTEXT (). Il ne modifie pas notre entrée JSON.

    ObjectMapper ObjectMapper = Nouveau ObjectMapper (); JSONNODE PARSER = ObjectMAPPER.Readtree (JSON); Jsonnode corps = parser.path ("corps"); String newname = "newname";

    ((ObjetNode) corps) .put ("nom", newname); // corps.path ("nom"). Astext (). Remplacer ("Nom", "NEWNAME");

    System.out.println (corps);

En outre: Comment modifier Jsonnode en Java?

1
Dharman 4 mai 2021 à 09:19