【问题标题】:How to iterate over a JSON array in Node.js?如何在 Node.js 中迭代 JSON 数组?
【发布时间】:2015-09-24 02:45:56
【问题描述】:

我有一个 JSON 数组:

[
    {
        "art": "A",
        "count": "0",
        "name": "name1",
        "ean": "802.0079.127",
        "marker": "null",
        "stammkost": "A",
        "tablename": "IWEO_IWBB_01062015"
    },
    {
        "art": "A",
        "count": "0",
        "name": "2",
        "ean": "657.7406.559",
        "marker": "null",
        "stammkost": "A",
        "tablename": "IWEO_IWBB_02062015"
    }
]

要在 PHP 中遍历数组,我将使用以下代码来遍历表名:

foreach($jArray as $value){ 
  $tablename = $value['tablename'];
  //some code
}

如何在 Node.js 中做到这一点?我发现了很多问题,但没有真正的答案。其中大部分来自 2011 年。

【问题讨论】:

  • JSON 只是一个符号。将其转换为原生 Array 然后照常执行操作,for(;;)Arrayfor..inObject跨度>

标签: javascript node.js json


【解决方案1】:
var tables = [
    { "art":"A","count":"0","name":"name1","ean":"802.0079.127","marker":"null","stammkost":"A","tablename":"IWEO_IWBB_01062015" },
    { "art":"A","count":"0","name":"2","ean":"657.7406.559","marker":"null","stammkost":"A","tablename":"IWEO_IWBB_02062015" }
];

tables.forEach(function(table) {
    var tableName = table.name;
    console.log(tableName);
});

【讨论】:

  • 究竟应该打印什么?我得到'未定义',两次:(
【解决方案2】:

您需要先将其反序列化为一个对象。

var arr = JSON.parse(<your json array>);
for(var i = 0; i < arr.length; i++)
{
  var tablename = arr[i].tablename;
}

【讨论】:

  • for..in 用于循环 Objects 的键,您可能希望使用 for 来循环
【解决方案3】:

var tables = [
    { "art":"A","count":"0","name":"name1","ean":"802.0079.127","marker":"null","stammkost":"A","tablename":"IWEO_IWBB_01062015" },
    { "art":"A","count":"0","name":"2","ean":"657.7406.559","marker":"null","stammkost":"A","tablename":"IWEO_IWBB_02062015" }
];

tables.map(({name})=> console.log(name)) 

for 在 js 中迭代 for...in、map、forEach、reduce

【讨论】:

    【解决方案4】:

    在节点中迭代数组的另一种方法:

    let Arr = [
        {"art": "A","count": "0","name": "name1","ean": "802.0079.127","marker": "null","stammkost": "A","tablename": "IWEO_IWBB_01062015"},
        {"art": "A","count": "0","name": "2","ean": "657.7406.559","marker": "null","stammkost": "A","tablename": "IWEO_IWBB_02062015"}
    ];
    
    for (key in Arr) {
      console.log(Arr[key]);
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多