使用 AT 命令在 JSON 模式中发送数据

Sending Data in JSON schema using AT Commands

我正在处理与服务器的 MQTT 连接建立。 我需要使用 AT 命令以 JSON 模式格式将数据发送到服务器。
N58 Neoway模块中使用的模块。使用 AT 命令建立连接并发布数据或订阅数据 to/from 服务器,它应该以 JSON 格式发生。
使用的AT命令是:

AT+MQTTPUB=1,1,<"topic_name">,<"data">

我需要发送 JSON 模式来代替数据。
寻找任何 suggestions/help.

源代码基于C.

通过 AT 命令发送 JSON 的问题是它包含双引号 ",不幸的是,根据 AT 命令 ETSI 规范,双引号被解释为字符串参数的开头。因此,在许多模块中发生的情况是不可能发送一个 JSON 字符串作为参数。

一些调制解调器供应商通过启动可以原始发送数据的在线模式解决了这个问题。
N58 使用不同的策略,即转义特殊字符。在AT command guide中调用datalinkescape.

虽然指南可能会更好(没有对数据link转义的明确解释),但我们可以从示例中推断出来(例如参见AT+UDPSEND中的示例):为了转义 " 字符,只需像在 C 字符串 中那样写 \"。示例:

AT+MQTTPUB=1,1,"topic_name","{\"menu\":{\"id\":\"1\",\"value\":\"2\"}}"