使用javascript获取JSON密钥文本

时间:2015-03-13 15:00:01

标签: javascript json

我有这种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++)

3 个答案:

答案 0 :(得分:1)

使用response.alimenti[i][0]不会起作用,因为alimenti是一个对象数组,而不是一个数组数组。

相反:

var alimenti = response.alimenti[0];
console.log(alimenti.maccina);
console.log(alimenti.pollo);

示例:http://jsfiddle.net/zcuwfb9s/

答案 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]);
}