如何使用 AWS SDK 解析来自 getThingShadow 的 json 结果
How to parse the json result from getThingShadow, using AWS SDK
我在使用 AWS SDK 和 nodejs 解析 AWS getThingShadow 的结果时遇到了一些问题。它 returns 数据,它看起来类似于 Json 除了它在开头有文本有效负载,我想这就是我可以正确解析它的原因。另一方面,我怀疑作为 AWS SDK 的一部分必须存在一些可以为我做这件事的功能吗?不幸的是,我还没有找到任何相关信息。您认为最简单的方法是什么?
var iotdata = new AWS.IotData({endpoint: 'myEndPoint'});
iotdata.getThingShadow(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else
{
console.log(data); // successful response
数据如下所示:
有效载荷{“状态”:{“期望”:{“GPIO1”:“0”,“GPIO5”:“0”,“GPIO6”:“0”,“GPIO13”:“0”},“报告”:
{“GPIO1”:“8”,“GPIO5”:“0”...
当然,我可以尝试“手动”删除第一个文本(有效负载),然后正常解析 json,但这听起来不是正确的方法。
谢谢,
马库斯
响应看起来有点奇怪,因为我认为它实际上是一个对象。 payload
是键,value
是您需要解析的字符串。
我认为如果这是真的并且有效载荷本身就是一个对象,您也许可以做这样的事情。
const test = {payload: '{"state":{"desired":{"GPIO1":"0","GPIO5":"0","GPIO6":"0","GPIO13":"0"},"reported": {"GPIO1":"8","GPIO5":"0"}}}'}
console.log('typeof test', typeof test) // assuming this returns object
JSON.parse(test.payload)
{
state: {
desired: { GPIO1: '0', GPIO5: '0', GPIO6: '0', GPIO13: '0' },
reported: { GPIO1: '8', GPIO5: '0' }
}
}
我在使用 AWS SDK 和 nodejs 解析 AWS getThingShadow 的结果时遇到了一些问题。它 returns 数据,它看起来类似于 Json 除了它在开头有文本有效负载,我想这就是我可以正确解析它的原因。另一方面,我怀疑作为 AWS SDK 的一部分必须存在一些可以为我做这件事的功能吗?不幸的是,我还没有找到任何相关信息。您认为最简单的方法是什么?
var iotdata = new AWS.IotData({endpoint: 'myEndPoint'});
iotdata.getThingShadow(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else
{
console.log(data); // successful response
数据如下所示: 有效载荷{“状态”:{“期望”:{“GPIO1”:“0”,“GPIO5”:“0”,“GPIO6”:“0”,“GPIO13”:“0”},“报告”: {“GPIO1”:“8”,“GPIO5”:“0”...
当然,我可以尝试“手动”删除第一个文本(有效负载),然后正常解析 json,但这听起来不是正确的方法。
谢谢, 马库斯
响应看起来有点奇怪,因为我认为它实际上是一个对象。 payload
是键,value
是您需要解析的字符串。
我认为如果这是真的并且有效载荷本身就是一个对象,您也许可以做这样的事情。
const test = {payload: '{"state":{"desired":{"GPIO1":"0","GPIO5":"0","GPIO6":"0","GPIO13":"0"},"reported": {"GPIO1":"8","GPIO5":"0"}}}'}
console.log('typeof test', typeof test) // assuming this returns object
JSON.parse(test.payload)
{
state: {
desired: { GPIO1: '0', GPIO5: '0', GPIO6: '0', GPIO13: '0' },
reported: { GPIO1: '8', GPIO5: '0' }
}
}