1. json解析:json是什么和json的语法就不多介绍了,在ESP8266涉及到网络请求的部分内容中,我们也会涉猎到json,一方面如果ESP8266和服务器交流最后使用的是HTTP请求的话,服务器响应的内容和请求的内容最好都是json这样大家都好受,如果要用的话,ESP8266可以沾沾光,因为有大佬针对Arduino开发了一套JSON解析工具就是ArduinoJson,这个对于ESP8266也是可以用的,首先要在IDE中引入库,直接搜索,然后下载即可

    image.png
    然后引入头文件就开始了,理论上JSON解析直接对结构化的语言进行反序列化即可,但是在这里需要先进行一个操作,那就是转化空间的估计,也就是要先估计转化需要占用的空间大小,并且去申请这样大小的一块空间
    拿到这块空间以后就可以直接使用库文件中函数完成JSON的反序列化

    1. #include <ArduinoJson.h>
    2. void setup() {
    3. Serial.begin(9600);
    4. Serial.println("");
    5. // 重点1:DynamicJsonDocument对象,这是一个无符号长整形数据
    6. //对于只有两个属性的对象,函数参数设置为2,30为预留空间
    7. const size_t capacity = JSON_OBJECT_SIZE(2) + 30;
    8. DynamicJsonDocument doc(capacity);
    9. // 重点2:即将解析的json文件
    10. String json = "{\"name\":\"taichi-maker\",\"number\":1}";
    11. // 重点3:反序列化数据
    12. deserializeJson(doc, json);
    13. // 重点4:获取解析后的数据信息
    14. //解析完成以后,可以直接使用键来获取对应的值
    15. String nameStr = doc["name"].as<String>();
    16. int numberInt = doc["number"].as<int>();
    17. // 通过串口监视器输出解析后的数据信息
    18. Serial.print("nameStr = ");Serial.println(nameStr);
    19. Serial.print("numberInt = ");Serial.println(numberInt);
    20. }
    21. void loop() {}