繁体   English   中英

Node.JS中的JSON POST数据序列化为数组

[英]JSON POST data in Node.JS serialized as array

试图从我的前端表单获取POST数据。 当我运行console.log(req.body)我得到以下内容:

[ { name: 'name', value: 'kevin' }
  { name: 'email', value: '' },
  { name: 'phone', value: '' },
  { name: 'message', value: '' } ]

问题:我在console.log(req.body.name)上的当前输出是: Undefined

预期的产出是: kevin

有人可以解释为什么会发生这种情况以及我可以做些什么来避免? 我对JSON和我试图学习都不太了解。

谢谢

req.body将是一个对象数组。 您需要使用forEach迭代它以进行常规for循环并获取值。

如果你只想从第一个对象获取元素,那么执行req.body[0].name ,其中[0]是索引

有人可以解释为什么会发生这种情况以及我可以做些什么来避免?

尝试这样使用forEach()获取名称/值,因为你req.body是一个array of object所以你要迭代它并从中获取名称或值 ,如下所示,并避免undefined输出。 此外,如果您只想要array of object任何特定名称/值,请尝试forEach req.body[0].namereq.body[0].value类的forEach循环。 希望你现在明白:)

 const array_of_obj = [{ name: 'name', value: 'kevin' }, { name: 'email', value: '' }, { name: 'phone', value: '' }, { name: 'message', value: '' } ]; array_of_obj.forEach((elm) => { console.log(`name = ${elm.name} and value = ${elm.value}`); }) 

检查我创建的这个例子。 希望这会有所帮助

    var json1 = {"players":[
          {"name":"Messi", "goals":8},
          {"name":"Ronaldo", "goals":22},
          {"name":"Costa", "goals":20},
          {"name":"Neymar", "goals":13},
          {"name":"Arabi", "goals":6},
          {"name":"Bale", "goals":3},
          {"name":"Toquero", "goals":0}]};
    console.log(json1.players[0]);
    for(let item of json1.players){
     console.log(item);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM