2016-05-04 9 views
0

JSON Text:Anzeige JSON Text in Freemarker

[{ "desc": null, "Menge": 250, "Artikel": "527"}, { "desc": "test", "Menge" : 3333,33, "Artikel": "522"}, {"desc": null, "Anzahl": 3333,33, "Artikel": "522"}, {"desc": null, "Anzahl": 1500, "Artikel" : "520"}, { "desc": null, "Menge": 1560, "item": "519"}]

habe ich versucht, den folgenden Code, aber es funktioniert nicht: < #assign customrecord = record .custpage_custrecord_itemlist? eval /> < #list customrecord als customrecord_line>

< #list customrecord als customrecord_line>

${customrecord_line.item} 
${customrecord_line.desc} 
${customrecord_line.amount} 

</#list> 

Anmerkung: (record.custpage_custrecord_itemlist ist die Variable, die den json Text enthält) Bitte helfen

Vielen Dank im Voraus!

+0

Warum möchten Sie JSON in einer Vorlage analysieren? Ich habe Leute gesehen, die versuchten, dies die ganze Zeit über SO zu tun. Was ist der Anwendungsfall dafür? – ddekany

Antwort

0

In der Vorlagensprache ist kein JSON-Parser enthalten. ?eval analysiert FTL-Ausdrücke, nicht JSON. Die beiden sind ähnlich, aber nicht identisch. Anders als in JSON gibt es in FTL keine null. Ich schätze also, dass der Fehler null nicht definiert ist. Eine mögliche Problemumgehung ist, dass Sie etwas wie <#assign null=''> früher machen, also wenn ?eval sieht null, ersetzt es es mit einer leeren Zeichenfolge (was nicht sehr gut ist, aber Sie sehen, was der Mechanismus ist; Sie könnten auch einen anderen speziellen Wert wählen) .

Aber die einzige richtige Lösung wäre die Verwendung eines echten JSON-Parsers und das Ergebnis in das Datenmodell zu schreiben (oder TemplateMethodModel zu schreiben, das einen echten JSON-Parser aufruft und das Ergebnis zurückliefert).

+0

vielen Dank! Das beantwortet meine Frage. Ich bin Freemarker wirklich neu –