Konvertieren von Dynamischen ArrayList zu Json
Ich konvertieren möchten, eine array-Liste, um json-Strings, der von einem bestimmten format. Ich bekomme alle Benutzer E-Mails in einem array-Liste und möchten, konvertieren Sie diese in das folgende format JSON.
[
{"email":"[email protected]"},
{"email":"[email protected]"}
]
Meine controller-action ist
public static Result apiCustomers(){
List<Customer> customerList = Model.coll(Customer.class).find().toArray();
List<String> emails = new ArrayList<String>();
for(Customer c : customerList){
emails.add(c.email);
}
//ObjectNode result = Json.newObject();
//result.put("emails", Json.toJson(emails));
return ok();
}
Wie kann ich die emails konvertieren-Liste, um der oben genannten json-format?
Vielen Dank im Voraus
- Verwenden Sie die Google-Gson. Es gibt absolut keine Notwendigkeit zu brechen, euren Kopf mit dieser Art von Problemen.
- Verwenden GSON zum generieren von JSON-Daten, dann die Pumpe, die in einem
RenderJson
Ergebnis?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum verwenden Sie ein anderes JSON-ser/des-lib? Spielen hat eine eingebaute (ein wrapper um jackson - das ist wirklich schnell).
Ausgehend von deinem code:
Diese verwendet einige Vorgaben, sollte aber genug sein.
Oder manuell:
Keine Notwendigkeit für Gson.
Können Sie diese Bibliothek verwenden:
http://code.google.com/p/google-gson/
Ziemlich einfache Anleitung dazu hier:
http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
Oder schreiben Sie eine benutzerdefinierte toJson-Methode, um Ihre Klassen oder ein util Json (keine große Sache)
in deinem Fall sollte es etwas sein, dass (ich nicht testen):
Mit dem Vorteil von Java 8 (und ich vermute, dass ein neuer Jackson-version):