/ / wie man mit codehaus.jackson eine JSON-Array-Darstellung einer POJOS-Liste erhält - java, json, spring, jackson

wie man eine JSON-Array-Darstellung einer POJOS-Liste mit Hilfe von codehaus.jackson bekommt - java, json, spring, jackson

Ich habe nach einer Möglichkeit gesucht, eine Liste von POJOs in json umzuwandeln.

wir haben verwendet codehaus jackson schon mit spring MVC .was ich erreichen wollte ist nicht in einem ajax call mit @ResponseBody action, ich denke an eine util - Methode, um eine Liste von Pojos in ein json - Array zu konvertieren, aber nachdem ich es mir angesehen habe Beispiele und ObjectMapper-Klasse es scheint keinen direkten Weg zu geben, um dies zu erreichen. Dafür haben sie eine Klasse PojoMapper erstellt.

public static String toJson(Object pojo, boolean prettyPrint)
throws JsonMappingException, JsonGenerationException, IOException {
StringWriter sw = new StringWriter();
JsonGenerator jg = jf.createJsonGenerator(sw);
if (prettyPrint) {
jg.useDefaultPrettyPrinter();
}
m.writeValue(jg, pojo);
return sw.toString();
}

Ich frage mich nur, dass dies der empfohlene Weg ist. An anderen Beispielen verwendeten sie eine Datei, aber ich habe keine Absicht, eine Datei zu verwenden, sondern ein Objekt. Ich frage mich, ob jemand den Weg weisen kann.

Danke fürs Lesen

Antworten:

2 für die Antwort № 1

Sie sollten nur in der Lage sein, Folgendes zu tun.

List<POJO> list = ...;
String json = new ObjectMapper().writeValueAsString(list);

Wenn Sie eine bidirektionale Eltern-Kind-Beziehung haben. Dann müssen Sie Anmerkungen hinzufügen, um Jackson über diese Beziehung zu informieren.

class Parent {

private Child child;

@JsonManagedReference
Child getChild() {return child;}

void setChild(Child child) {this.child = child;}

}

class Child {

private Parent parent;

@JsonBackReference
Parent getParent() {return parent;}

void setParent(Parent parent) {this.parent = parent;}

}

Das obige informiert Jackson über die zyklische NaturDies funktioniert für Jackson 1.6+. Ich hatte dieses Problem vorher noch nicht und ich habe Jackson nicht auf diesem Computer und konnte es daher nicht testen das richtig.

Sie sollten auch beachten, dass die Dokumentation sagt, dass das Elternteil keine Sammlung sein kann.