我有一个 JSON
对象,格式如下 {"Foo": ["B","A","R"]}
我正在尝试像这样访问数组的值:
var json = '{"Foo": ["B","A","R"]}';
expression = JSON.Parse(json, function(key, value){
if(key == "Foo"){
console.log(value.length); // logs "3"
console.log(value[1]); // logs "undefined"
}
});
如果我询问值的长度,它会返回正确的数组长度,但如果我询问值,它会返回 undefined
,我不太清楚为什么。还有其他值我可以正常访问的 JSON
,但它们不是数组。任何见解将不胜感激。谢谢!
最佳答案
你应该使用 JSON.parse
像这样:
var json = '{"Foo":["B","A","R"]}';
var object = JSON.parse(json);
// object is now and object containing the data from 'json'
var expression = object["Foo"][1]; // object["Foo"] refers to the
// value with key "Foo"
(使用回调参数调用 JSON.parse
是转换 JSON 对象的高级功能,而不是读取它。但在几乎所有情况下,您都希望像上面的代码一样使用它,没有回调。)
关于javascript - 从 reviver 访问 JSON 对象中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737395/