Skip to content

收到 MQTT 消息后报错

问题描述

收到 MQTT 发来的消息提示 SyntaxError: Unexpected number in JSON at position xxxx at JSON.parse

Untitled

问题原因

原因:JSON 数据格式错误,请检查接收到的 MQTT 消息是否符合 JSON 格式。

解决方法

如果订阅 Topic 是常见的,那么换一个。定义一个新的 Topic(最好为比较复杂,不容易重复的)。

如果是自己定义的 Topic,请检查发送的消息是否符合 JSON 格式。

什么是 JSON 格式的数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的一个子集,标准 ECMA-262 第 3 版 - December 1999 的语法。JSON 支持以下数据格式:

  1. 对象:在 JSON 中表示为 {},由键值对组成,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
  2. 数组:在 JSON 中表示为 [],由一系列值组成,值之间用逗号 , 分隔。
  3. 字符串:必须使用双引号 " 包围。
  4. 数字:表示为数值,不需要引号。
  5. 布尔值truefalse
  6. null:表示空值。

JSON 格式的一个简单例子如下:

json
{
  "name": "John",
  "age": 30,
  "is_student": false,
  "courses": ["Math", "Science", "English"],
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

在这个例子中,我们有一个对象,它有多个属性:name 是一个字符串,age 是一个数字,is_student 是一个布尔值,courses 是一个字符串数组,address 是一个嵌套的对象。

JSON 格式被广泛用于网络应用之间的数据交换,因为它易于生成和解析,同时支持跨编程语言使用。

在这里,最好是发送数字类型的 value,因为需要用于回显传感器数值。

powered by 天人之际工作室