ArduinoJson是Arduino和IoT(物联网)的C ++ JSON库。
特征
- JSON避难所化
- 可选地将UTF-16逃逸序列解码为UTF-8
- 可选地支持输入中的评论
- 可选地过滤输入以保留所需的值
- 支持单语引号作为字符串定界符
- 与NDJSON和JSON系列兼容
- JSON序列化
- 可以写入缓冲区或流
- 可选地缩进文档(Prettified JSON)
- MessagePack序列化
- 消息包供应
- 高效的
- 是“官方” Arduino_json库的两倍
- 比“官方” arduino_json图书馆快几乎10%
- 与“官方” Arduino_json库的消耗大约少10%
- 删除字符串
- 多才多艺的
- 支持自定义分配器(例如,使用外部RAM芯片)
- 支持String,STD :: String和STD :: String_view
- 支持流和STD :: istream/std :: Ostream
- 支持闪存字符串
- 支持自定义读者和自定义作家
- 支持自定义转换器
- 便携的
- 可在任何C ++项目(不限于Arduino)上使用
- 与C ++ 11,C ++ 14和C ++兼容17
- 支持C ++ 98/C ++ 03 ArduinoJson 6.20.x上可用
- 用-wall -wextra -petsantic和 /w4的零警告
- 仅标题库
- 几乎与任何董事会合作
- Arduino董事会:Uno,Due,Micro,Nano,Mega,Yun,Leonardo ...
- Espressif芯片:ESP8266,ESP32
- LOLIN(WEMOS)董事会:D1 Mini,D1 Mini Pro ...
- 青少年董事会:4.0、3.2、2.0
- 粒子板:氩气,硼,电子,光子...
- 德州仪器委员会:MSP430 ...
- 软核:Nios II ...
- 在所有主要开发环境中进行测试
- Arduino IDE
- Atmel Studio
- 原子truestudio
- 能量
- IAR嵌入式工作台
- Keil Uvision
- mplab x IDE
- 粒子
- Platformio
- Eclipse的Sloeber插件
- 视觉微观
- 视觉工作室
- 甚至与wandbox.org这样的在线编译器合作
- Cmake友好
- 设计精良
- 优雅的API
- 线程安全
- 独立的(无外部依赖)
- 句子友好
- 友好
- TMP友好
- 处理整数溢出
- 经过良好的测试
- 单位测试覆盖范围接近100%
- 连续测试
- Visual Studio 2017,2019,2022
- GCC 4.8、5、6、7、8、9、10、11、12
- 7至19
- 不断与Google Oss Fuzz融为一体
- 通过clang-tidy的所有默认检查
- 据记录
- 教程
- 例子
- How-Tos
- 常问问题
- 故障排除
- 书
- ChangElog
- 充满活力的用户社区
- Github上所有Arduino库中最受欢迎
- 用于数百个项目
- 响应迅速的支持
Quickstart
避免
这是一个与ArduinoJson一起解析JSON文档的程序。
const char * json = " { " sensor " : " gps " , " time " :1351824120, " data " :[48.756080,2.302038]} " ;
JsonDocument doc;
deserializeJson (doc, json);
const char * sensor = doc[ " sensor " ];
long time = doc[ " time " ];
double latitude = doc[ " data " ][ 0 ];
double longitude = doc[ " data " ][ 1 ];请参阅有关ArduinoJson .org的教程
序列化
这是一个与ArduinoJson生成JSON文档的程序:
JsonDocument doc;
doc[ " sensor " ] = " gps " ;
doc[ " time " ] = 1351824120 ;
doc[ " data " ][ 0 ] = 48.756080 ;
doc[ " data " ][ 1 ] = 2.302038 ;
serializeJson (doc, Serial);
// This prints:
// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}请参阅有关ArduinoJson .org的教程
赞助商
ArduinoJson感谢其赞助商。请给他们参观;他们应得的!
如果您运行一个嵌入ArduinoJson商业项目,请考虑赞助图书馆的开发:它可以确保您的产品依赖的代码积极维护。它还可以使您的项目有所了解。
如果您是个人用户,并且想支持开发(或给出赞赏的迹象),请考虑购买掌握ArduinoJson书,或者简单地抛出一颗星星。
下载源码
通过命令行克隆项目:
git clone https://github.com/bblanchon/ArduinoJson.git