render JSON in GRAILS mit einem Teil der Attribute eines Objekts
Ich versuche zu bauen JSON aus zwei Feldern. Sagen, ich haben eine Liste des Objekts(party), und ich mich nur übergeben müssen 2 Objekte als JSON-pair-Mädchen.
def list = getMyList() //it contains 2 party objects
partyTo = array {
for (i in list) {
x partyId: i.id
y partyName: i.toString()
}
}
Den JSON-string ist
{
"partyTo": [
{"partyId":12},
{"partyName":"Ar"},
{"partyId":9},
{"partyName":"Sr"}
]
}
wenn ich entpacken Sie es an den client, es wird behandelt, als 4 Objekten. Ich wollte als 2 Objekte, die unten aufgeführten format.
{
"partyTo": [
{"partyId":12, "partyName":"Ar"},
{"partyId":9 , "partyName":"Sr"}
]
}
Ich bin immer 4 Objekte, wahrscheinlich, weil ich ein array verwenden, um zu bauen JSON. Ich bin neu in groovy und JSON, also nicht sicher über die richtige syntax Kombinationen. Jede Hilfe sehr geschätzt.
danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht, dass das problem mit der Konstruktion der Elemente in einem array. Um die erforderliche Leistung müssen Sie eine Reihe von Karten, eine Karte für jedes Objekt, und erhalten die Allgemeine "partyTo" Objekt, das Sie hinzufügen müssen, dass die Liste zu einer anderen Karte:
In anderen Worten, eine Grails-Karte verwandelt sich in ein JSON-Objekt-und Grails-arrays und Listen zu arrays in JSON
Wenn Sie wollen immer, daß Ihre "Partei" Objekte wie dieses könnten Sie erwägen, einen ObjectMarshaller. Mehr details in diesem Beitrag auf render JSON-Objekt-marshallers