2014-02-10 2 views
0

Добрый день!Iterate javascript объектов

Как получить значения на моем json через точечный (.) Синтаксис ??

вот мой JSON данные:

[ 
{"productName":"31","description":"this is a red item","quantity":"","price":"15"}, 
{"productName":"35","description":"this color is blue","quantity":"","price":"600"}] 

Я попытался с помощью

var temp = $.cookie('Table_Rows'); <-- which contains the json data above; 

for (var key in temp) { 
if (temp.hasOwnProperty(key)) { 
    var obj = temp[key]; 
    for (var prop in obj) { 
    if (obj.hasOwnProperty(prop)) { 
     console.log(prop + " = " + obj[prop]); 
    } 
    } 
    } 
} 

затем я получил этот журнал на моей консоли:

0 = [ 
0 = { 
0 = " 
0 = p 
0 = r 
0 = o 
0 = d 
0 = u 
0 = c 
0 = t 
0 = N 
0 = a 
and so on.. 

Можете ли вы помочь мне comeup с правильный метод пожалуйста. Я хочу получить к нему доступ, как temp.productName. Я знаю, что это должно быть легко исправить, но это действительно запутывает меня прямо сейчас. Спасибо и хорошего дня!

+1

You нужно сначала разобрать его. 'var data = JSON.parse (temp);'. –

+1

Да. То, что вы получаете из файла cookie, не JSON, пока вы его не разобрали;) – Jorgeblom

+1

@Bommox: На самом деле, это * есть JSON. Когда вы разобрали его, он станет объектом. JSON - это строковый формат. –

ответ

1

Ваш массив содержит продукт элементов, к которым вы можете получить доступ, используя простой индекс доступа к индексу массива.

Но сначала разобрать ваш печенье объект строки в формате JSON:

var jsonArray = JSON.parse(temp); 

И тогда вы должны придумали:

var jsonArray = [{ 
    productName: "31", 
    description: "this is a red item", 
    quantity: "", 
    price: "15" 
}, { 
    productName: "35", 
    description: "this color is blue", 
    quantity: "", 
    price: "600" 
}]; 

Что вы можете перебирать, как это:

for (obj in jsonArray) { 
    console.log(jsonArray[obj].productName); 
} 

И получить следующий вывод:

31 
35 

Посмотреть мой JSFiddle пример полного кода версии.

+0

спасибо @Yair Nevet за ваш ответ! он отлично работал! Кстати, сначала не работая, тогда я понял, что мне нужно сначала разобрать мои данные! спасает мой день! – melvnberd

+1

@melvnberd Да, я знаю, см. Мое обновление. Рад помочь вам. –

1

Вам необходимо включить JSON вы получаете от стоимости печенья в объект JavaScript с использованием JSON.parse

Тогда вы можете получить доступ к ProductName, используя метод массива, который доступен в ES5

temp.forEach(function(item){ console.log(item.productName) }); 
Смежные вопросы