javascript - 如何通过索引访问JSON对象中的字段

标签 javascript json

我知道这不是最好的方法,但我别无选择:(

我必须通过索引访问 JSONObject 中的项目。访问对象的标准方法是编写 this[objectName]this.objectName。我还找到了一种获取 json 对象中所有字段的方法:

(for (var key in p) { 
  if (p.hasOwnProperty(key)) { 
    alert(key + " -> " + p[key]); 
  } 
} 

(来源:Loop through Json object)。

但是,无法通过索引直接访问 JSON 字段。我现在看到的唯一方法是创建一个数组,使用上面的函数,通过索引获取字段名,然后通过字段名获取值。

据我所知,p(在我们的例子中,JSON 文件必须是一个可迭代的数组,否则 foreach 循环将不起作用。我如何直接访问这个数组?或者它是某种未排序的列表?

最佳答案

一个 JSON 对象更像是一个键值映射;所以,是的,它是未分类的。绕过的唯一方法是您已经提到的索引->属性名称映射:

var keysbyindex = Object.keys(object);
for (var i=0; i<keysbyindex.length; i++)
    alert(object[keysbyindex[i]]);

但是为什么需要这些索引呢?未排序的映射也没有像数组那样的长度属性。为什么不使用 for-in-loop

var counter = 0; // if you need it
for (var key in object) {
    alert(object[key])
    counter++;
}

?如果你有一个解析过的 JSON 对象,即一个普通的 JS 对象,你就不必担心可枚举的原型(prototype)属性。

关于javascript - 如何通过索引访问JSON对象中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9768150/

相关文章:

javascript - 将 <div> 元素与窗口对象引用隔离

javascript - 对象字面量内的函数

javascript - 如何在 javascript 中使用 XML?

r - 将嵌套的 JSON 文件转换为 R 数据帧

javascript - 有没有办法使用 sinon stub 方法,其中方法有两个参数

javascript - 如何在页面加载后通过 jQuery 动态插入 &lt;script&gt; 标签?

javascript - json循环后推送2个数组

python - Flask 请求和 application/json 内容类型

Javascript::将回调后的 JSON 字符串转换为纯 JavaScript 数组

javascript在页面加载时隐藏div,直到if语句条件选择div