JSON 要点
JSON在百科上的定义和描述为,JSON(JavaScript Object Notation, JS 对象简称) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
1.JSON对象
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。对象和数组是比较特殊且常用的两种类型。
JSON亦可以理解为“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)、值的有序列表(An ordered list of values)等等。在大部分语言中,它被理解为数组(array)。
一个完整的JSON对象包含几个要点:
● 对象(object)
  对象是一个无序的“‘名称/值’对”集合,一个对象以“{}”(大括号)描述。
● 数组(array)
  数据是值(value)的有序集合;值之间使用“,”(逗号)分隔;一个数组以“[]”(方括号)描述。
● 名称(name)
  名称用“ “” ”(双引号)描述。
● 值(value)
  值存在字符串(string)、数值(number)、布尔值(bool)、null、对象(object)以及数组(array),而且这些值结构可以嵌套使用。名称和值之间以“:”(冒号)分隔。
●名称和值对(name & value)
  名称和值对之间以“:”(冒号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
● 并列数据
   并列数据之间用逗号(“,”)分隔。
实现一个JSON串
Info{
  "Year": 2019,
  "Mon": 4,
  "Day":26,
  "Week":[
  	"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  	"People":{
  	"name":"Acuity",
  	"Increase":180,
  	"English name":null,
  	"Crime":false,
  	}
}
2. C语言JSON解析器
嵌入式开发一般以C语言为主,涉及到JSON对象时,一般考虑采用C或者C++语言实现的JSON库。应用到JSON对象的情景有,物联网终端、移动设备、模块间通信等。在GitHub上有个“十大C开源项目”之一的cJSON解析器。
仓库源码:https://github.com/DaveGamble/cJSON
cJSON解析器只有不到3000行C代码,是一个非常轻量的JSON解析器,目前更新到版本1.7.10。cJSON解析器已被广大开发者应用在实际产品上,从可靠性、稳定性都是比较认可的,所以在嵌入式中使用JSON对象,首选CJSON。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号