Konvertieren Sie JSON String in Pretty Print JSON Ausgabe mit Jackson

Dies ist die JSON-string habe ich-

{"attributes":[{"nm":"ACCOUNT","lv":[{"v":{"Id":null,"State":null},"vt":"java.util.Map","cn":1}],"vt":"java.util.Map","status":"SUCCESS","lmd":13585},{"nm":"PROFILE","lv":[{"v":{"Party":null,"Ads":null},"vt":"java.util.Map","cn":2}],"vt":"java.util.Map","status":"SUCCESS","lmd":41962}]}

Brauche ich zum konvertieren der oben genannten JSON-string in Pretty Print JSON-Ausgabe(mit Jackson), wie unten-

{
    "attributes": [
        {
            "nm": "ACCOUNT",
            "lv": [
                {
                    "v": {
                        "Id": null,
                        "State": null
                    },
                    "vt": "java.util.Map",
                    "cn": 1
                }
            ],
            "vt": "java.util.Map",
            "status": "SUCCESS",
            "lmd": 13585
        },
        {
            "nm": "PROFILE
            "lv": [
                {
                    "v": {
                        "Party": null,
                        "Ads": null
                    },
                    "vt": "java.util.Map",
                    "cn": 2
                }
            ],
            "vt": "java.util.Map",
            "status": "SUCCESS",
            "lmd": 41962
        }
    ]
}

Kann jemand mir eine Beispiel-basis, auf mein Beispiel oben? Wie erreichen Sie dieses Szenario, ich weiß, es gibt viele Beispiel, aber ich bin nicht in der Lage zu verstehen, diese richtig. Jede Hilfe wird dankbar sein mit einem einfachen Beispiel.

Aktualisiert:

Unten ist der code, den ich verwende

ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(jsonString));

Aber das funktioniert nicht mit der Art und Weise, die ich brauchte, die Ausgabe wie oben erwähnt,

Hier ist der POJO-ich bin mit der oben genannten JSON-

public class UrlInfo implements Serializable {

    private List<Attributes> attribute;

}

class Attributes {

    private String nm;
    private List<ValueList> lv;
    private String vt;
    private String status;
    private String lmd;

}


class ValueList {
    private String vt;
    private String cn;
    private List<String> v;
}

Kann mir jemand sagen, ob ich das Recht habe, POJO für die JSON-oder nicht?

Aktualisiert:-

String result = restTemplate.getForObject(url.toString(), String.class);

ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readValue(result, Object.class);

String indented = mapper.defaultPrettyPrintingWriter().writeValueAsString(json);

System.out.println(indented);//This print statement show correct way I need

model.addAttribute("response", (indented));

Unter Zeile druckt so etwas wie dieses-

System.out.println(indented);


{
  "attributes" : [ {
    "nm" : "ACCOUNT",
    "error" : "null SYS00019CancellationException in CoreImpl fetchAttributes\n java.util.concurrent.CancellationException\n\tat java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:231)\n\tat java.util.concurrent.FutureTask.",
    "status" : "ERROR"
  } ]
}

ist die Art und Weise, die ich brauchte, gezeigt zu werden. Aber wenn ich es als Modell-

model.addAttribute("response", (indented));

Und dann zeigt es sich in einem resultform jsp-Seite wie unten-

    <fieldset>
        <legend>Response:</legend>
            <strong>${response}</strong><br />

    </fieldset>

Bekomme ich so etwas wie dieses-

{ "attributes" : [ { "nm" : "ACCOUNT", "error" : "null    
SYS00019CancellationException in CoreImpl fetchAttributes\n 
java.util.concurrent.CancellationException\n\tat 
java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:231)\n\tat 
java.util.concurrent.FutureTask.", "status" : "ERROR" } ] }

die ich nicht brauchen. Ich brauchte die Möglichkeit hab es ausgedruckt vor. Kann mir jemand sagen, warum es kam, geschah so?

InformationsquelleAutor der Frage arsenal | 2013-01-25

Schreibe einen Kommentar