2022-03-28 来源:华纳网 责任编辑:谷雨 人气:
核心提示:知识点:JSON的使用

知识点:

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的使用
//引用头文件#include <Arduino.h>#include <ArduinoJson.h>
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/




 





免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。