我已经看到了很多这个问题的不同答案,并尝试将他们的代码应用到我的项目中,但这些解决方案似乎都不适合我的数据。
我需要将此输出转换为多个对象:
[{ “生物”:{ “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等。
同样,我知道这是一个经常被问到的问题。我真的经历了很多其他的例子,但他们只是没有为我工作。
谢谢。
答案 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的解析很可能是正确的,但之后出现的逻辑并非(完全猜测)。