2013-02-24 4 views
0

У меня есть кодJavascript: Не удается получить значения из массива

alert(JSON.stringify((this.shop.get('selectedOrder')).get('orderLines'))); 

Результат похож на этот

[{"cart_weight":0,"total_weight":1,"quantity":1,"list_price":1,"discount":0,"ean13":false,"product_image_small":false,"name":"Watermelon1","pos_categ_id":[1,"Others"],"taxes_id":[],"id":2}] 

Когда я запускаю этот код

alert((this.shop.get('selectedOrder')).get('orderLines').total_weight); 

Результат СТАТЬ

undefined 

Любой экспорт может помочь?

Я подозреваю, что это двойная скобка, вызывающая проблему [{}], но я новичок в javascript. Не удалось решить проблему.

спасибо.

+1

try 'get ('orderLines') [0] .total_weight'' –

+1

Возможный дубликат [У меня есть вложенная структура данных/JSON, как я могу получить доступ к определенному значению?] (Http://stackoverflow.com/ вопросы/11922383/я-есть-а-вложенные-структуры данных-JSON-хау может-я-доступ-а-удельная стоимость) –

ответ

0

Попробуйте alert((this.shop.get('selectedOrder').get('orderLines')[0].total_weight);

Как вы подозреваете, ваш результат не является объектом (в JavaScript терминологии, любые данные между {}), но массив ([]), содержащий один объект. Поэтому перед доступом к атрибуту вам нужно получить доступ к первому элементу массива.

0

Ваш выбранный заказ имеет несколько линий. Вам нужно выбрать, какую строку получить от total_weight. В этом случае есть только одна строка, поэтому вы можете ссылаться на нее с помощью [0]. Т.е .:

alert((this.shop.get('selectedOrder')).get('orderLines')[0].total_weight); 

Если вместо этого, к примеру, вам необходимо вычислить вес всего заказа, вы можете перебрать все строки заказа, и вычислить сумму.

Смежные вопросы