[英]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].name
或req.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.