2012-02-03 3 views
0

Я всегда путаюсь, как правильно форматировать json. Я думаю, это потому, что мне нужно уйти и передохнуть.

У меня есть система электронной торговли, и у меня есть сценарий, который я хочу отображать информацию о категории через json. Будет ли отображать это следующим образом:

{ 
    "cat_name": "All Items", 
    "cat_desc": "<div><img src=\"item.gif\" /></div>", 
    "cat_desc2": "", 
    "cat_id": "756", 
    "cat_father_id": "0", 
    "cat_image": "", 
    "per_ship": "0.00", 
    "item_ship": "0.00", 
    "item_int_ship": 0, 
    "per_int_ship": "0.00", 
    "noProducts": "45", 
    "disp_order": "3", 
    "cat_img_folder": "" 
} 

ли я иметь возможность ссылаться на эти пункты после того, как initlized к объекту, как так:

obj.cat_name 
obj.cat_id 
+0

Что у вас есть это JSON * объект * (который также является Java-объект), но не в JSON * строка *. Я не понимаю, какой из двух вы ищете. – bfavaretto

ответ

3

Вот правильно отформатированные, если ваша служба возвращает эту информацию вы можете сделать следующее

$.getJSON('YOURSERVICEURL', function(data) { 

    $.each(data, function(key, val) { 
    console.log('KEY: ', key, ' VALUE', val); 
    }); 

}); 

где ключ будет являться свойством и вал значение при его доступе (в модных данных [ключ] === значение, или, d ata.key === значение). Так что, да, если data имеет ключ, который вы ищете (в вашем случае cat_name cat_id, вы можете получить их.

Одна вещь, чтобы иметь в виду, что цифры не должны быть между "", если вы хотите, чтобы они были номера, когда вы обращаетесь к ним с помощью свойств объекта

Кроме того, если вы когда-нибудь нужно знать, если вы форматирования JSON правильно, вы могли бы взглянуть на this link

+1

хорошо ответ wachiturro! – MCSI

0

Просто ... да, но вы должны знать, что те, свойства находятся в объекте точно или вы получите некоторую странность.

Вы также можете получить доступ к ним через:

obj[cat_name] 
obj[cat_id] 

из:

var x; 
for(x in obj){ 
    console.log("x:" +x+" - value:"+obj[x]); 
} 
0

Да, после того, как вы запустите Eval или правильную функцию разбора json2, вы можете получить к ней доступ, как вы сказали, и если у вас возникнут проблемы, прочитайте синтаксис на www.json.org, также есть сайт под названием http://www.jsonlint.com, где вы можете вставить свой JSON и протестировать его.

Вы найдете там много свободы в формате JSON, и может иметь вложенные объекты/массивы и больше

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