由于 C 语言汇总,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理 json。JSON 是一种轻量级的数据交换格式。JSON 采用完全独立与语言的文本格式,易于人阅读和编写。同时也易于机器解析和生成。它是基于 JavaScript,Programming Language,Standard ECMA-262 3rd Edition -December 1999 的一个子集。JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(如 C,C++,C++,JavaScript,Perl,Python 等)。这些特性使用 JSON 成为理想的数据交换语言。
JSON 作用:在数据传输时能够更好地提取出需要的数据,可以用于客户端和服务器端的数据交互。JSON 建构与两种结构:
JSON 的结构可以理解成无序的、可嵌套的 key-value 键值对集合,这些 key-value 键值对是以结构体或数组的形式来组织的。同一级的 key-value 键值对之间是用以个 ","(逗号)隔开,每个 key-value 键值对是由一个 key 后面紧接一个 ":"(冒号),冒号后面是这个 key 对应的 value。Key 是一个 word,由大小写字母、下划线及数字组成,可以由双引号封闭,也可以不加双引号;而 value 值的取值为:字符串(string),数值(number),true,false,null,对象(object)或者数组(array)。这些结构可以嵌套。
实质:JSON 是一种信息交换格式,而 cJSON 就是对 JSON 格式的字符串进行构建和解析的一个 C 语言函数库。此外,cJSON 作为 JSON 格式的解析库,其主要功能就是构建和解析 JSON 格式。JSON 具有的形式如下:对象是一个无序的 "名称 / 值" 对集合。一个对象以 "{"(左括号)开始,"}"(右括号)结束。每个 "名称" 后跟一个 ":"(冒号);"'名称 / 值'" 对之间使用 ","(逗号)分割。其具体形式如下图:
数值是值(value)的有序集合。一个数组以 "["(左中括号)开始,"]"(右中括号)结束。值之间使用 ","(逗号)分割。其具体形式如下图:
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。其具体形式如下:
字符串(string)是由双引号包围的任意数量 Unicode 字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符馋(character string)。字符串(string)与 C 或者 Java 的字符串非常相似。其具体形式如下:
数值(number)也与 C 或者 Java 的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。其具体形式如下:
来源: http://www.bubuko.com/infodetail-2446066.html