为 AWS IoT 格式化 JSON 字符串

Formatting JSON string for AWS IoT

当我尝试从变量发布温度值时,我从 AWS 控制台收到 "JSON format error";这工作正常:

mosquitto_pub -t $aws/things/my-xxxx/shadow/update -m '{"state": {"desired":
{"temperature": 1   }}}' -q 1

我想用一个变量替换“1”,所以我用 mosquitto_pub 等创建了一个 shell,我想将一个参数传递给 shell ,调用“./publish.sh Temperature_Value”,其中温度值是一个整数:

尝试这个我从 AWS 控制台收到错误:

DATA=
mosquitto_pub -t $aws/things/my-xxxx/shadow/update -m '{"state": {"desired":
{"temperature": $DATA }}}' -q 1

我做错了什么? 谢谢

你的转义是错误的。这是正确的转义:

mosquitto_pub -t $aws/things/my-xxxx/shadow/update -m "{\"state\": {\"desired\":
{\"temperature\":  }}}" -q 1

请记住,单引号 ' 内的变量不会被插值。

此致!