从JSON创建对象

时间:2012-04-06 12:14:59

标签: javascript ajax json parsing object

我已经看到了很多这个问题的不同答案,并尝试将他们的代码应用到我的项目中,但这些解决方案似乎都不适合我的数据。

我需要将此输出转换为多个对象:

[{ “生物”:{ “ID”:1, “名称”: “RIP”, “sprite_location”:NULL, “health_points”:0, “攻击”:0, “防守”:0,“action_points “:0,” attack_cost “:0}},{” 生物 “:{” ID “:2”,名称 “:” RIP “ ”sprite_location“:” http://chunkofwhat.com/games/Parousia/sprites /rip.gif","health_points":0,"attack":0,"defense":0,"action_points":0,"attack_cost":0}},{"creature":{"id":3, “名”: “斗牛”, “sprite_location”: “http://chunkofwhat.com/games/Parousia/sprites/bull.gif”, “health_points”:50, “攻击”:8, “防守”:20 “action_points”:9 “attack_cost”:5}},{ “生物”:{ “ID”:4 “名称”: “吞咽。”, “sprite_location”:“http://chunkofwhat.com/games /Parousia/sprites/swallow.gif","health_points":30,"attack":12,"defense":10,"action_points":13,"attack_cost":5}},{"creature":{"id “5,” 名 “:” 河童 “” sprite_location “:” http://chunkofwhat.com/games/Parousia/sprites/kappa.gif “ ”health_points“:40, ”攻击“:6,”防御 “:15,” action_points “:9,” attack_cost “:3}},{” 生物 “:{” ID “:6,” 名 “:空,” sprite_location “:空,” health_points “:空”攻击“:空,”德芬SE “:NULL,” action_points “:NULL,” attack_cost“:空}}]

当我尝试jQuery.parseJSON()时,它只给了我一堆[object Object]但我不能引用生物[1] .id等。

同样,我知道这是一个经常被问到的问题。我真的经历了很多其他的例子,但他们只是没有为我工作。

谢谢。

3 个答案:

答案 0 :(得分:2)

每个对象都有一个属性(creature),另一个对象是它的值。

result_of_parsing_json[1].creature.id

答案 1 :(得分:0)

您的代码似乎完全有效。试试 this jsfiddle

var creatures = $.parseJSON(yourJSONString);

alert(creatures[0].creature.name);​ // alerts "R.I.P"

您是否需要任何具体的澄清?

答案 2 :(得分:0)

var creatures = JSON.parse('big_json_string');

for (var i = 0; i < creatures.length; i++) {
    var creature = creatures[i].creature; // this is how your object is formatted

    console.log(creature.name);
}

/*
 R.I.P.
 R.I.P.
 Bull.
 Swallow.
 Kappa.
 null
*/

每个生物都嵌套在另一个物体中,因为它是一个物体数组(包含生物),你必须用for循环迭代它,才能使用它。

然后,您对JSON的解析很可能是正确的,但之后出现的逻辑并非(完全猜测)。