说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  QQ 群 号:513683159 【相互学习】
内容来源
  cJSON库 API解析(上)
  json几个小例子
  JSON 教程
  json 官网

一、JSON与cJSON介绍

JSON:

  JSON 全称 JavaScript Object Notation,即 JS对象简谱,读作/ˈdʒeɪsən/,是一种轻量级的文本数据交换格式(移动数据、存储东西,或只是一般地表示程序的状态)。
  JSON 是存储和交换文本信息的语法,类似 XML,但比 XML 更小、更快,更易解析。文件扩展名是 .json.
  采用完全独立于编程语言的文本格式来存储和表示数据,语法简洁、层次结构清晰,易于人阅读和编写,同时也易于机器解析和生成,有效的提升了网络传输效率。

cJSON:

  cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,使用MIT开源协议。

二、JSON语法

1.基本数据类型:

  ①对象(object):若干无序的 “键值对” (key-value pairs),其中键是数值或字符串,用 { }括起来。
  ②数组 / 值的有序列表(array):有序的零个或者多个值,使用方括号[ ]括起来。
  ③字符串(string):以双引号 " " 括起来的零个或多个 Unicode码位。支持反斜杠开始的转义字符序列。
  ④数值(number):不区分整数与浮点数。JavaScript用双精度浮点数 double表示所有数值。
  ⑤布尔值(boolean):表示为 true 或者 false 。
  ⑥null 类型:值写为 null
备注
  ①对象
    以 “{” 开始,以 “}” 结束,允许嵌套使用;
    可包含多个键值对,每个名称和值成对出现,名称和值之间使用 “:” 分隔;即:key : value相当于key = value。键值对之间用 “,” 分隔。
    在这些字符前后允许存在无意义的空白符;
  ②数组
    以 “[” 开始,以 “]” 结束,允许嵌套使用;
    每个值可以为任意类型,可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array);
    元素之间用 “,” 分隔
    在这些元素前后允许存在无意义的空白符;

2.两种结构

  名值对的集合(A collection of name/value pairs)。
    不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list),关联数组 (associative array)。
  值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)
    

三、举例

  示例一:

{
	"name":"王小二",							//字符串
	"age":18,								//数值
	"favorite_food":["dumplings","ribs"],	//数组
	"has_girlfriend":false,					//布尔值
	"car":null,								//null
	"address":								//对象
	{
		"country":"China",
		"city":"fuzhou",
		"postcode":350000
	}
}

  示例二:

{
	"employees": [

					{"firstName":"Bill" , "lastName":"Gates" },

					{"firstName":"George" , "lastName":"Bush" },

					{"firstName":"Thomas" , "lastName":"Carter"}
				 ]
}
GitHub 加速计划 / cj / cJSON
10.45 K
3.16 K
下载
Ultralightweight JSON parser in ANSI C
最近提交(Master分支:2 个月前 )
424ce4ce This reverts commit 5b502cdbfb21fbe5f6cf9ffbd2b96e4281a741e6. Related to #860 4 个月前
32497300 - 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐