基于ArduinoJson.h库的JSON信息解析步骤说明及源码 [ESP8266-NodeMCU开发]

理论讲解
  • 目的:实现对JSON信息的解析,并通过串口进行输出

  • 要用到的库ArduinoJson6.0以上的版本,库安装教程

  • 这个程序只用到setup()函数,没用到loop()函数

  • @重要函数

    Serial.begin();//串口

    Serial.print();//串口

    deserializeJson(StaticJsonDocument对象,JSON信息); //反序列化

  • @重要对象及变量

    StaticJsonDocument doc

    DeserializationError error

  • 程序思路详解:

    1. 程序开始时,打开串口,设置波特率Serial.begin()

    2. 输入JSON信息,用一个String类型的变量input进行存储
      注意1:Arduino中的String要大写,不然会报错
      注意2:JSON信息不用手打,可以通过ArduinoJson官方在线工具生成:打开这个网址
      在这里插入图片描述
      在这里插入图片描述
      红框内的就是生成的`ArduinoJson的代码形式

    3. 进入这个网址,获取后面的代码
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    4. 将复制的代码中首行String input后面接上步骤二中得到的代码,并去掉注释,结果如下:

      String input = "{\"name\":\"caixvkun\",\"time\":2.5}"; //JSON信息	
      
    5. 串口输出函数Serial.print(),输出想要的内容

    6. 若看到串口监视器中显示以下内容,则说明编译成功
      在这里插入图片描述

程序源码
/**********************************************************************
@重要函数
Serial.begin();//串口
Serial.print();//串口
deserializeJson(StaticJsonDocument对象,JSON信息); //反序列化

@重要对象及变量
StaticJsonDocument doc
DeserializationError error

@注意:此程序需用到ArduinoJson6.0版本
@功能:解析JSON信息,并通过串口实现输出
@作者:不会嵌入式的摆烂王
@时间:2022年12月08日
**********************************************************************/

#include <ArduinoJson.h>

void setup() {
  Serial.begin(9600);  //开启串口通信

  String input = "{\"name\":\"caixvkun\",\"time\":2.5}"; //JSON信息

  StaticJsonDocument<64> doc; //创建一个StaticJsonDocument类型的doc对象

  DeserializationError error = deserializeJson(doc, input); //反序列化

  if (error) { //报错信息输出
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  const char* name = doc["name"];  // "caixvkun" 
  float time = doc["time"];        // 2.5

//串口输出部分
  Serial.print("\n");
  Serial.print("name=");
  Serial.print(name);
  Serial.print("\n");
  Serial.print("time=");
  Serial.print(time);
}

void loop() {
}

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值