有没有办法从这个请求体中取出值?

Is there a way to take values out of this request body?

我正在使用 node.js 和 express 来接收来自另一个我不管理的服务的 post 请求。控制台中的请求正文returns如下

{
  '{"org_id":"TSTORG","network_id":0,"ts":"2021-09-01T17:40:24","device_name":"Test Device","device_id":0,"ssid":"Test SSID","client_name":"Test Client Device","client_mac":"AA:BB:CC:DD:EE:FF","event_type":"WLAN","detail":"Event log notification test","longitude":0.1,"latitude":0.2,"gps_timestamp":"2021-09-01T17:40:24","sn":"0000-0000-0000"}': ''
}

它似乎是一个 JSON 对象,里面有一个 JSON 字符串。这个请求是格式错误还是我遗漏了什么?提前致谢。

我觉得这确实有问题。看起来实际的请求可能是

{"org_id":"TSTORG","network_id":0,"ts":"2021-09-01T17:40:24","device_name":"Test Device","device_id":0,"ssid":"Test SSID","client_name":"Test Client Device","client_mac":"AA:BB:CC:DD:EE:FF","event_type":"WLAN","detail":"Event log notification test","longitude":0.1,"latitude":0.2,"gps_timestamp":"2021-09-01T17:40:24","sn":"0000-0000-0000"}

这将是有效的 json。相反,似乎发生了一些事情,以某种方式将所有这些包装在另一个对象中,然后(怀疑的)实际请求被用作键。

我终于想通了。

var data = request.body;
var key = Object.keys(data)[0];

我不得不使用 Object.keys 方法来 return 对象内的文本。从那里:

var p = JSON.parse(key)
console.log(p)

这使我能够将 JSON 字符串重新转换为可以从中提取值的可用 JSON 格式。