Json中的嵌套对象

时间:2015-11-22 23:58:58

标签: json

我是Json对象和Json数组的新手。我想访问Json对象中的嵌套对象,但是我发现了一个小错误,我浪费了我的2小时搜索也读了很多stackoverflow的问题,但我无法找到我在哪里发生错误。请帮帮我

响应

{ __v: 0,
friends_in:
[ { friends_in_email: '12',
   friends_in_gcm_regId: '12'
} ]    
}

我的代码

console.log(JSON.stringify(doc));

输出:

{
"__v": " 0",
"friends_in": [
    {
        "friends_in_email": "12",
        "friends_in_gcm_regId": "12"
    }
   ]
}

这是错误生成说未定义

mycode的

console.log(JSON.stringify(doc[0].__v));
console.log(JSON.stringify(doc[0].friends_in));

输出

0 //Correct
undefined //Why ?

1 个答案:

答案 0 :(得分:0)

你的字符串化JSON中有一些错误(可能是一些错误的粘贴?)。但是使用下面的JSON,一切都按预期工作。

var rawString = '{ "__v":" 0", "friends_in": [{ "friends_in_email": "12", "friends_in_gcm_regId": "12"}] }';
var x = JSON.parse(rawString);
console.log(JSON.stringify(x.__v));
console.log(JSON.stringify(x.friends_in));

以上结果如下:

0
[{"friends_in_email":"12","friends_in_gcm_regId":"12"}]

你似乎混淆了JSON对象(花括号{...}中的东西)和JSON数组(方括号中的东西[...])。只应将JSON数组编入索引:

var y = [22, 24, 28]; 
y[0] // do something with it ...

对象应按名称访问其成员:

var z = { test: 22, another_number: 24 }; 
z.test // do something with it ...