我有这种JSON对象
"{\"date\": \" 9 Marzo\", \"time\": \" 07:00 - 13:20\", \"descrizione\": \" concerto\", \"alimenti\": [{ \"macchina\":\"si\", \"pollo\":\"no\" }] }";
我想得到字符串“macchina”和“pollo”,它们是键文本/值(我从ajax获取Object,所以“9 Marzo”就像response.date
),并且同样的“si”和“no”,我无法到达他们。
我试过console.log(response.alimenti[i][0]);
,但它未定义。
我来自cicle:for (i = 0; i < response.ruoli.length; i++)
答案 0 :(得分:1)
使用response.alimenti[i][0]
不会起作用,因为alimenti是一个对象数组,而不是一个数组数组。
相反:
var alimenti = response.alimenti[0];
console.log(alimenti.maccina);
console.log(alimenti.pollo);
答案 1 :(得分:1)
最好解析JSON对象,然后从javascript对象中提取字符串。
i.e var obj = JSON.parse("{\"date\": \" 9 Marzo\", \"time\": \" 07:00 - 13:20\", \"descrizione\": \" concerto\", \"alimenti\": { \"macchina\":\"si\", \"pollo\":\"no\" } }";);
console.log(obj.alimenti[0].macchina);
或pollo
console.log(obj.alimenti[0].pollo);
此外,该对象结构有点奇怪。您可能希望从alimenti中删除该数组以更好地访问数据。
答案 2 :(得分:1)
这将使您获得字符串“macchina”和“pollo”:
var json = "{\"date\": \" 9 Marzo\", \"time\": \" 07:00 - 13:20\", \"descrizione\": \" concerto\", \"alimenti\": [{ \"macchina\":\"si\", \"pollo\":\"no\" }] }";
var obj = JSON.parse(json);
for (var k in obj.alimenti[0]) {
console.log(k);
}
或他们的价值观:
for (var k in obj.alimenti[0]) {
console.log(obj.alimenti[0][k]);
}