Kam heute über dieses merkwürdige Ergebnis und versuchte, eine Liste von Objekten als JSON in Grails 2.0.4 zu rendern ... (Ich weiß, ich werde es bereuen zu fragen das wegen etwas rechts unter meiner Nase ... aktualisiert 5/26, meine Vorhersage war korrekt, siehe unten :-))Rendern von 'als JSON' in Grails mit Bedingungsoperator wird nicht korrekt dargestellt
Das funktioniert gut; die JSON macht richtig im Browser ...
def products = [] //ArrayList of Product objects from service
def model = (products) ? [products:products] : [products:"No products found"]
render model as JSON
..so warum nicht diese verkürzte Version ohne model
Arbeit?
def products = []
render ((products) ? [products:products] : [products:"No products found"]) as JSON
Das resultierende JSON aus dem obigen Code-Ausgabe als einzelne Textzeile ist, so dass ich vermute, dass es as JSON
Abholung nicht ist, aber es ist richtig eingeklammert, so was ist das Problem?
[ 'Produkte': [com.test.domain.Product: null, com.test.domain.Product ...]
Damnit zu sagen, ich bin Aufruf 'render()', ohne es zu merken, thx, ich am Ende mit dieser unter Verwendung von Elementen Ihrer Lösung gehen, es ist ein etwas kürzer und vermeidet die Angabe des Inhaltstyps zweimal: 'render (contentType:" text/json ") {[produkte: (produkte?:" Keine produkte gefunden ")]}' – raffian
Das würde auch funktionieren: 'render ((products ? [Produkte: Produkte]: [Produkte: "Keine Produkte gefunden"]) als JSON) ' –
@JamesKleeh Ace im Loch, schön! .. und genau das, was ich gesucht habe! – raffian