知识点:
JSON的使用
本课内容:
上节我们学习的字符串的使用,
那么本节我们来学习Arduino中的JSON字符串的使用,
JSON我们是调用库文件,
在PlatformIO进行Arduino,
调用程序库是非常方面的事情,
只需打开Libraries搜索即可,
基本上我们需要的功能,
都能找到需要的库
在学习之前,我们首先学习一下
在互联网及物联网程序中,
JSON是非常常见的数据传输和交换的格式,
他通常是文本明文,易于解析,易于传输,
我们在其它语言中也有着非常广泛的使用,
通常来说,对于JSON,我们的应用,
我们通常是在JSON对象和字符串之间转换,
再读取和设置JSON里面的内容
首先,我们声明(实例化)一个JSON对象
DynamicJsonDocument doc(1024);
将字符串反序列化成JSON对象
deserializeJson(doc, F("{\"sensor\":\"gps\",\"time\":1351824120,"
"\"data\":[48.756080,2.302038]}"));
到此,我们就得到的JSON对象了
JsonObject obj = doc.as<JsonObject>();
读取节点内容
long time = obj[F("time")];
设置修改节点内容
obj["sensor"] = "gps传感器";
obj["typ"]="谷雨课堂";
有没有感觉非常方便
没错,就是这么简单
以下是本节所用到的所有源文件
// 谷雨课堂
// 云物联与人工智能
// No.07 JSON的使用
//引用头文件
void setup()
{
Serial.begin(115200);
//声明一个缓冲区,存放内容
DynamicJsonDocument doc(1024);
// 用字符串初始化JSON
deserializeJson(doc, F("{\"sensor\":\"gps\",\"time\":1351824120,"
"\"data\":[48.756080,2.302038]}"));
JsonObject obj = doc.as<JsonObject>();
// 取JSON内容
long time = obj[F("time")];
// 设置内容
obj["sensor"] = "gps传感器";
obj["typ"]="谷雨课堂";
obj[F("time")] = time;
String s="";
// JSON转为字符串
serializeJson(doc,s);
// 通过串口打印出来
Serial.println(s);
}
void loop()
{
// 等待1秒
delay(1000);
}
扩展阅读
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。
对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。