I haben JSON Daten wie die folgendenmit JSON Daten in Coldfusion
{
"category" : [
{
"name" : "digital stickers",
"products" : [
{
"name" : "round digital stickers",
"urlPublic" : "index.cfm/digital-stickers/round-stickers",
"urlPortal" : "tab=round digital stickers"
},
{
"name" : "square digital stickers",
"urlPublic" : "index.cfm/digital-stickers/square-stickers",
"urlPortal" : "tab=square digital stickers"
}
]
},
{
"name" : "Litho stickers",
"products" : [
{
"name" : "round litho stickers",
"urlPublic" : "index.cfm/litho-stickers/round-stickers",
"urlPortal" : "tab=round litho stickers"
},
{
"name" : "square litho stickers",
"urlPublic" : "index.cfm/litho-stickers/square-stickers",
"urlPortal" : "tab=square litho stickers"
}
]
}
]
}
I DeserializeJSON(theData)
wie unten
<cfset cfData=DeserializeJSON(theData)>
habe ich dann einen Datenarray verwendet habe die Kategorie zum Speichern von Werten
<cfset dataArray = cfData.category>
und ausgespuckt haben sie in einer Schleife aus
<cfloop array="#dataArray#" index="elem">
<!--- print out value for demo purposes --->
<cfoutput>
<h3>#elem.name#</h3>
</cfoutput>
</cfloop>
Das funktioniert alles gut und ich sehe die 2 Kategorienüberschriften - "digitale Aufkleber" und "Litho Aufkleber".
Ich möchte jetzt die Produkte in einer Liste unter jeder relevanten Kategorie anzeigen. Also unter "digitale Aufkleber" zu haben "Runde digitale Aufkleber" und "quadratische digitale Aufkleber", dann unter Litho Aufkleber haben "Runde Litho Aufkleber" und "Quadrat Litho Aufkleber" etc.
Ich habe versucht, ein neues Array zu erstellen wie unten
<cfset productArray = cfData.products>
aber ich die Fehlermeldung bekam ‚ist Element Produkte undefined in cfdata‘
Dann war mein Plan diese Schleife in der Stromschleife zu setzen durch die entsprechenden Produkte zu Schleife. Ich denke, ich brauche möglicherweise ein separates Array für jede Kategorie, um die Produkte in dieser bestimmten Kategorie durchzulaufen.
Jede Hilfe würde sehr geschätzt werden - danke im Voraus!
Absolut perfekt. Obwohl ich ehrlich sein muss. Ich verstehe es nicht vollständig. Findet '# elem.products #' auf die nächste Ebene in der JSON-Struktur? Dann jedes Mal ein neues Array erstellen? Dann, wenn Sie "# innerelem.name #" tun, würde das durch alle Produktnamen durchlaufen werden. Um meine Links spucken raus richtig ich das ‚
‘ Wie gesagt angepasst haben - funktioniert ein Genuss. Vielen Dank. – Sprose
@ user3008971, Bitte überprüfen Sie das Update. –