在javascript中从文件中读取json

时间:2016-06-30 10:15:35

标签: javascript json

我有这个json文件:

test.json

{"rows" : [
  {"key": "value"},
  {"key": "value"}
 ]
}

我尝试使用此代码来阅读它:

var json = require('test.json');
for (var row in json.rows) {
    console.log(row.key);
}

打印:

/usr/local/bin/node json-parser.js
undefined
undefined

我做错了什么?

1 个答案:

答案 0 :(得分:3)

其中row是保存属性名称而不是对象的变量,因此您需要使用属性名称检索它(请参阅:for...in loop documentation)。在你的情况下,它将是数组的索引。 for...in迭代器,简单的for循环就足够了。

for (var row in json.rows) {
  console.log(json.rows[row].key);
}

var json = {
  "rows": [{
    "key": "value"
  }, {
    "key": "value"
  }]
};

for (var row in json.rows) {
  console.log(json.rows[row].key);
}

使用简单的for循环

for (var i=0;i < json.rows.length; i++) {
  console.log(json.rows[i].key);
}

var json = {
  "rows": [{
    "key": "value"
  }, {
    "key": "value"
  }]
};

for (var i = 0; i < json.rows.length; i++) {
  console.log(json.rows[i].key);
}

由于该属性包含数组,因此使用Array#forEach方法进行迭代。

json.rows.forEach(function(v){
  console.log(v.key);
}

var json = {
  "rows": [{
    "key": "value"
  }, {
    "key": "value"
  }]
};

json.rows.forEach(function(v) {
  console.log(v.key);
})