javascript - 从 reviver 访问 JSON 对象中的数组

标签 javascript arrays json node.js

我有一个 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/

相关文章:

javascript - Javascript 中 "replace"的不同行为

javascript - 使用Ajax从数据库中获取数据

javascript - 设置 React 项目 : What does Babelify do?

arrays - 尝试将对象映射器模型转换为数组

c - 使用递归和无循环查找数组中最长的升序子系列的长度

java - 如何在 Spring 中仅返回特定字段

json - 重复 jQuery JSON 请求,直到满足条件

javascript - 如何在页面到达某个位置时启动计数器?

javascript - PHP 数组不会存储变量

json - ionic 2 http服务获取数据本地json文件