Hi zusammen,
ich baue mir in einem TextHTMLWriter ein JSON aus einem Spreadsheet:
[
<#list spreadsheet@SpreadsheetMapper_13.getRows() as row>
${toJSON(
newMap({
"ItemID": row.val("ItemID"),
"VAT": row.val("VAT"),
"Price": row.val("Price"),
"Name": row.val("ItemTextsName3"),
"Image": row.val("Image")
}
),{'removeEmpty': true, 'pretty': true})}<#sep>,</#sep>
</#list>
]
Und kippe das in einen StringToFile um die Datei dann irgendwo hoch zu laden.
Nun würde ich gerne die Einträge in der JSON auf 10 beschränken. Das Spreadsheet aus dem ich mich speise, hat mehrere zehntausend Einträge.
Ich kann nun wohl eine Zählvariable drum basteln:
klick
[
<#assign i = 0 />
<#list spreadsheet@SpreadsheetMapper_13.getRows() as row>
<#if (i < 10)>
${toJSON(
newMap({
"ItemID": row.val("ItemID"),
"VAT": row.val("VAT"),
"Price": row.val("Price"),
"Name": row.val("ItemTextsName3"),
"Image": row.val("Image")
}
),{'removeEmpty': true, 'pretty': true})}<#sep>,</#sep>
<#assign i = i + 1/>
</#if>
</#list>
]
…aber so wirklich performant ist das ja wahrscheinlich nicht, es durchläuft ja trotzdem noch alle Zeilen, schreibt sie dann halt nur nicht ins JSON.
Übersehe ich einen besseren Weg? Im Prinzip möchte ich erreichen, dass das Input-Spreadsheet schon nur zehn Zeilen hat. Der Rest geht ja dann von allein.
Irgend ne Idee, oder ist das schon best-practice so wie ich das mache?
Danke, Daniel