NodeMCU-32S json解析

2022/10/25 esp32

# 解析对象

#include <ArduinoJson.h>

void setup()
{
  Serial.begin(115200);
  Serial.println("");

  // DynamicJsonDocument对象
  const size_t capacity = JSON_OBJECT_SIZE(2) + 30;
  DynamicJsonDocument doc(capacity);

  // 将解析的json文件
  String json = "{\"name\":\"zs\",\"number\":1}";

  // 反序列化数据
  deserializeJson(doc, json);

  // 获取解析后的数据信息
  String nameStr = doc["name"].as<String>();
  int numberInt = doc["number"].as<int>();

  // 通过串口监视器输出解析后的数据信息
  Serial.print("nameStr = ");
  Serial.println(nameStr);
  Serial.print("numberInt = ");
  Serial.println(numberInt);
}

void loop()
{
}

# 解析数组

#include <ArduinoJson.h>

void setup()
{
  Serial.begin(115200);
  Serial.println("");

  // DynamicJsonDocument对象
  const size_t capacity = JSON_ARRAY_SIZE(2) + 2*JSON_OBJECT_SIZE(1) + 60;
  DynamicJsonDocument doc(capacity);

  // 将解析的json文件
  String json = "[{\"name\":\"zs\"},{\"website\":\"www.baidu.com\"}]";

  // 反序列化数据
  deserializeJson(doc, json);

  // 获取解析后的数据信息
  String nameStr = doc[0]["name"].as<String>();
  String websiteStr = doc[1]["website"].as<String>();

  // 通过串口监视器输出解析后的数据信息
  Serial.print("nameStr = ");
  Serial.println(nameStr);
  Serial.print("websiteStr = ");
  Serial.println(websiteStr);
}

void loop()
{
}