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。

posted @ 2019-06-02 21:21  Acuity  阅读(69)  评论(0)    收藏  举报