it-swarm.com.de

konvertierung der Array-Liste in eine Json-Objektzeichenfolge

Ich habe eine Modellklassenmethode, die eine Liste von Objekten zurückgibt, die alle registrierten Benutzerdetails enthält. Ich möchte die von all () zurückgegebene Liste abrufen und die Daten in ein JSON-Objekt konvertieren und sie wie eine Zeichenfolge an die Ansicht übergeben. Wie kann ich diese Konvertierung dieser Array-Liste in ein JSON-Objekt durchführen? 

Ich konnte das von unten nicht machen: 

ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
JsonNodeFactory jsonnode = JsonNodeFactory.instance;
ObjectNode result = new ObjectNode(jsonnode);
for (int i = 0; i < list.size(); i++) {
    json.put(list.get(i).fname, list.get(i));
    System.out.println(json.get("fname"));
}

@Entity
class Mydata extends Model {

    @Id
    public Long Id;
    public String fname;
    public String lname;
    public String city;
    public String state;
    /****************** READ/select OPERATION *****************/
    public static Finder < Long, Mydata > Finder = new Finder(Long.class, Mydata.class);

    public static List < Mydata > all() {
        return Finder.all();
    }
    public static void createuser(Mydata user) {
        user.save();
    }
}
11
pret

Um ArrayList in Json zu konvertieren, laden Sie einfach das Open Source-Dienstprogramm von Json von: http://json.org/Java/ oder Jar-Datei von hier herunter.

Und mach einfach:

JSONArray jsonAraay = new JSONArray(your_array_list);

Das ist es

Hinweis: Sie sollten in Ihrer POJO/MODEL-Klasse Setzer/Getter haben, um die Arrayliste in Json zu konvertieren

19
Rakesh Bhalani

Machen Sie sich keine Mühe mit org.json, verwenden Sie Jackson vollständig:

// list is a List<MyData>
final ObjectMapper mapper = new ObjectMapper();
final Map<String, MyData> map = new HashMap<>();
for (final MyData data: list)
    map.put(data.fname, data);
final JsonNode json = mapper.valueToTree(map);
1
fge

Sie können alle Arten von Drittanbieter-Bibliotheken verwenden, wie andere hier vorgeschlagen haben, oder einfach Plays eigene vereinfachte Methoden (in play.libs.Json) verwenden, die mit Jackson-Objekten arbeiten, aber sie sind in das Framework integriert und erfordern viel weniger Code , zum Beispiel:

JsonNode myJsonNode = Json.toJson(MyListObject); konvertiert die Liste in ein JsonNode-Objekt und verwendet dann etwas wie String jsonResult = Json.stringify(myJsonNode);, um sie in eine String-Darstellung zu konvertieren.

Wenn Sie JSON in einer Vorlage verwenden, vergessen Sie nicht, sie in etwas wie @Html(myJsonString) einzuwickeln, damit nichts entgeht. Andernfalls, wenn Sie nur den reinen JSON an den Browser ausgeben, funktioniert ein einfaches return ok(jsonResult);, da bei der Wiedergabe automatisch der Inhaltstyp festgelegt wird.

Referenzlink: http://www.playframework.com/documentation/api/2.0/Java/play/libs/Json.html

0
Mike Hawkins

haben Sie sich das angesehen: http://www.json.org/javadoc/org/json/JSONObject.html#valueToString(Java.lang.Object)

JSONObject.valueToString(<<your list of custom object>> OR <<objects>> OR <<map>>)

funktioniert gut ... es gibt einige andere Methoden auf dieser Lib, wenn Sie interessiert sind ....

0
labheshr