ArduinoJson是Arduino和IoT(物联网)的C ++ JSON库。
特征
- JSON避难所化
- 可选地将UTF-16逃逸序列解码为UTF-8
- 可选地支持输入中的评论
- 可选地过滤输入以保留所需的值
- 支持单语引号作为字符串定界符
- 与NDJSON和JSON系列兼容
- JSON序列化
- 可以写入缓冲区或流
- 可选地缩进文档(Prettified JSON)
- MessagePack序列化
- 消息包供应
- 高效的
- 多才多艺的
- 支持自定义分配器(例如,使用外部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书,或者简单地抛出一颗星星。
