2017-02-20 23 views
1

Я пытаюсь преобразовать некоторый код и обнаружил, что я правильно вставил его в массив, в котором есть элементы. Как правильно добавить этот набор данных в list_items массива. Мои вопросы это с линией кода перед закрытием Loop ...ColdFusion Append to Array для JSON

<cfset data["item_list"] = [] /> 
<cfloop query="qryShoppingCartContents"> 
    <cfset items = { 
     "name" = "#qryShoppingCartContents.name#", 
     "description" = "#qryShoppingCartContents.short_desc#", 
     "quantity" = "#myqty#", 
     "price" = "$#numberformat(qryShoppingCartContents.retail_price)#" 
    } /> 

    <cfset arrayAppend(item_list, items) /> 
</cfloop> 
+2

Вы неверно ссылаетесь на свой массив (если только это не опечатка). В цикле у вас есть '', но ваш массив определяется как часть структуры с именем «data» 'data [" item_list "]'. Он должен работать, если вы измените его на ''. –

+0

Спасибо! Я не был на 100% уверен, что будет работать с командой arrayAppend, но это так! –

+0

Не забудьте принять ответ, если он сработает для вас. Это облегчит для других возможность найти этот пост в будущем, чтобы увидеть его. –

ответ

1

Повышен от комментариев

Единственная проблема, которую я вижу, что вы ссылаетесь массив неправильно внутри цикла. Вы объявили ваш массив как часть структуры под названием «данные» с этой линии:

<cfset data["item_list"] = [] /> 

Но внутри цикла вы пытаетесь ссылаться на массив, как только «item_list» в этой строке:

<cfset arrayAppend(item_list, items) /> 

Он должен работать, если вы измените эту строку, чтобы ссылаться на массив как часть «данных» структуры, как это:

<cfset arrayAppend(data["item_list"], items) /> 

Или с помощью точечной нотации, как это:

<cfset arrayAppend(data.item_list, items) />