2012-06-06 2 views
1

Так что я в следующем формате JSON, который отображается на странице подтверждения заказа:как перебираются через массив JSON и тянуть значения с JQuery

var orderDetails = { 
    "orderID": "o32770183", 
    "orderQty": 3, 
    "orderTotal": 575.97, 
    "orderShipping": 49.97, 
    "orderDiscount": 0, 
    "orderTax": 39.74, 
    "orderCity": "Norwalk", 
    "orderState": "Connecticut", 
    "itemId": [ 
     "sku500134", 
     "sku230312", 
     "sku133846" 
    ], 
    "itemQty": [ 
     1, 
     1, 
     1 
    ], 
    "itemPrice": [ 
     159.99, 
     225.99, 
     189.99 
    ], 
    "itemName": [ 
     "The 'Inaugural' Raymond R Cabernet Sauvignon", 
     "H de l'Hospitalet", 
     "Chateau Florie Aude" 
    ] 
} 

Что бы наилучший подход к вытягивать данные из?

+2

* «Итак, у меня есть следующий JSON ...» * Это не JSON. Это JavaScript [инициализатор объекта] (http://ecma-international.org/ecma-262/5.1/#sec-11.1.5) (иначе говоря, «литерал объекта»). [JSON] (http://json.org) является его подмножеством, но когда у вас есть такая вещь в вашем JavaScript-коде, это не JSON. –

+0

@ T.J.Crowder - круто, увидев вас здесь снова :) –

+0

@ T.J.Crowder: Есть ли такая вещь, как стандартная «обертка»? JSON действительно может использовать один, если только с целью изменения имени. –

ответ

2

Это не JSON, это простой старый объект JavaScript. Вы тянете данные нашего так же, как с любым другим объектом

var orderId = orderDetails.orderID; 

или

var orderId = orderDetails["orderID"]; 

или для массивов:

var itemQtyArr = orderDetails.itemQty; 
for(var i = 0, max = itemQtyArr.length; i < max; i++){ 
    console.log("itemQty", i, itemQtyArr[i]); 
} 

или динамический подход Вивек отправил (+1 к нему)

+0

Или как это помечено 'jquery', всегда есть' $ .each (orderDetails.itemQty, function (index, entry) {...}); ' –

+0

Tj, который медленнее, я бы предпочел использовать' for in' –

+0

@ Interstellar_Coder: Не в реальном мире, если вы не имеете дело с миллионами записей: http://blog.niftysnippets.org/2012/02/foreach-and-runtime-cost.html –

3

Или также, как это - более динамичный подход - (если вы не знаете элементы объектов)

for(i in orderDetails) 
    alert(orderDetails[i]) 
1

Вы можете перебирать ключи от объекта Javascript, используя для в

Позволяет сказать

a = {"a":"hello","b":"world"}; 

for(var c in a){ 
    console.log(c); //will out put a,b in iterations 
    console.log(a[c]) //will access values of keys a and b from the object a output hello, world 
} 
+1

В вашем коде нет« объекта JSON ». См. комментарий к вопросу для получения дополнительной информации. –

+1

да отредактировал спасибо за это – Abid

+0

@TJCrowder - что было бы примером Объект JSON? – jrutter

0

Вот полезный инструмент JSON редактор, который дает визуальное представление вашего объекта JSON. Он перечисляет ваши именованные элементы и дает вам путь для доступа к вашим значениям JSON: JSON Editor

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