У меня есть данные в формате JSON, как следующийИспользование данных JSON в 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"
}
]
}
]
}
Я использовал DeserializeJSON(theData)
ниже
<cfset cfData=DeserializeJSON(theData)>
Я затем установить массив данных для хранения категории значений
<cfset dataArray = cfData.category>
и выплевывали их в петлю
<cfloop array="#dataArray#" index="elem">
<!--- print out value for demo purposes --->
<cfoutput>
<h3>#elem.name#</h3>
</cfoutput>
</cfloop>
Все это отлично работает, и я вижу рубрики 2 категории - «цифровые наклейки» и «лито-наклейки».
Что я хочу сделать сейчас, это отображать продукты в списке по каждой соответствующей категории. Таким образом, под «цифровыми наклейками» есть «круглые цифровые наклейки» и «квадратные цифровые наклейки», то под литовыми наклейками есть «круглые лито-наклейки» и «квадратные лито-наклейки» и т. Д.
Я попытался создать новый массив как показано ниже
<cfset productArray = cfData.products>
, но я получил сообщение об ошибке «Элемент PRODUCTS не определено в CFDATA»
Тогда мой план состоял в том, чтобы установить этот цикл внутри контура тока в петле через соответствующие продукты. Я думаю, мне может понадобиться отдельный массив для каждой категории для циклического прохождения продуктов в этой конкретной категории.
Любая помощь будет принята с благодарностью - заблаговременно!
Абсолютно совершенный. Хотя я должен быть честным. Я не понимаю этого полностью. Является ли «# elem.products #» доступ к следующему уровню в структуре JSON? Затем каждый раз создается новый массив? Тогда, когда вы делаете «# innerelem.name #», который будет перебирать все имена продуктов. Чтобы получить мои ссылки плеваться правильно я адаптировал это «
» Как я уже сказал - работает удовольствие. Благодарю. – Sprose
@ user3008971, пожалуйста, проверьте обновление. –