特征
JSON解码(支持注释)
JSON编码(带可选缩进)
优雅的API,易于使用
固定内存分配(零malloc)
没有数据重复(零拷贝)
Portable(用C ++ 98编写,可以在任何C ++项目中使用)
自足(无外部依赖)
占地面积小
输入和输出流
100%的代码覆盖率
仅限标头的库
MIT许可证
综合文件
兼容性
ArduinoJson适用于以下硬件:
Arduino板:Uno,Due,Mini,Micro,Yun ......
Espressif芯片:ESP8266,ESP32
WeMos板:D1,D1 mini,......
Teensy boards
Intel boards: Edison, Galileo...
Particle boards: Photon, Electron...
Texas Instruments boards: MSP430...
在如下IDE中编译无警告:
Arduino IDE
PlatformIO
Energia
Visual Micro
Atmel Studio
IAR Embedded Workbench
Atollic TrueSTUDIO
Keil uVision
MPLAB X IDE
GCC
Clang
Visual Studio
解析JSON 代码如下:
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; StaticJsonBuffer<200> jsonBuffer; JsonObject& root = jsonBuffer.parseObject(json); const char* sensor = root["sensor"]; long time = root["time"]; double latitude = root["data"][0]; double longitude = root["data"][1];
生成JSON代码如下:
StaticJsonBuffer<200> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root["sensor"] = "gps"; root["time"] = 1351824120; JsonArray& data = root.createNestedArray("data"); data.add(48.756080); data.add(2.302038); root.printTo(Serial); // This prints: // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}
ArduinoJSON下载地址:https://pan.baidu.com/s/1NZ3nyCRG-it2rDpamMJaZQ
ArduinoJSON库官网地址:https://arduinojson.org/
Github项目地址:https://github.com/bblanchon/ArduinoJson