Javascript Js:从对象中获取键值为字符串值的值

Javascript Js:从对象中获取键值为字符串值的值,javascript,node.js,express,Javascript,Node.js,Express,我很好奇从一个键值为字符串的对象中获取值的正确方法。 从客户端发布数据,并从express.Js后端的req.body接收数据 从客户端。乙二醇 从express.js后端接收的数据中获取console.log。乙二醇 控制台日志(要求正文航路点)//未定义 我尝试从客户端将航路点更改为字符串。 例如 此方法工作正常,从express.js后端的req.body.waypoints获取值 { origin:'1.123,2.234', waypoint:'15,16', destination:

我很好奇从一个键值为字符串的对象中获取值的正确方法。 从客户端发布数据,并从express.Js后端的req.body接收数据

从客户端。乙二醇

从express.js后端接收的数据中获取console.log。乙二醇

控制台日志(要求正文航路点)//未定义

我尝试从客户端将
航路点
更改为字符串。
例如

此方法工作正常,从express.js后端的
req.body.waypoints
获取值

{
origin:'1.123,2.234',
waypoint:'15,16',
destination:'3.123,3.234'
}

这里的问题是如何准确地从
'waypoints[lat]'
'waypoints[lng]
中获取值?

您会注意到,waypoints的键是一个字符串,因为它使用的字符通常与javascript对象的键不兼容(
[
]

因此,要访问它们,可以使用方括号而不是点符号

var数据={
路由ID:'1234',
来源:'1.123,2.234',
“航路点[lat]:“15”,
“航路点[lng]:“16”,
目的地:'3.123,3.234'
};
console.log(data.routeId);//这个很好用
console.log(数据['waypoints[lat]]]//需要方括号表示法

console.log(data.waypoints[lat]);//这假设了一个属性的航路点,并认为你;我们试图读取存储在变量“lat”中的属性,该变量未定义
使用
数据:JSON.stringify({…})
发送JSON;这样,express应该将请求主体解析回完整对象。(我想知道
[0]
是从哪里来的,因为你的
数据中没有数组。waypoint
。为什么有两个冒号?)我想如果你为数据传递一个对象,jquery会自己进行字符串化,这将使数组成为waypoints[0]。…@ChrisG谢谢你的回答,我会尝试上面的建议<代码>[0]
是我的错误,最初的航路点是一个数组,通过for循环添加一个对象。所以它应该是
'waypoints[lat]':和'waypoints[lng]':
编辑以消除误解。请尝试
req.body['waypoints[lat]]]
@ChrisG我已经尝试了您的建议,这样我可以将多个值和一个数组发送到waypoint中。例如
waypoints:JSON.stringify(allwaypoints)
,以后更容易获得一组lan&lng。非常感谢你的帮助:谢谢你,你的解释真的解释清楚了,澄清了我的误解。感谢你的帮助和时间。
{
 routeId:'1234',
 origin:'1.123,2.234',
 'waypoints[lat]':'15',
 'waypoints[lng]':'16',
 destination:'3.123,3.234,
}
var waypoints '';
waypoints += '15,16';
{
origin:'1.123,2.234',
waypoint:'15,16',
destination:'3.123,3.234'
}