该文主要记录是JSON的基本概念以及对应的cJSON API。
一、什么是JSON ?
详细的介绍见 https://www.json.org/ ,可以看到, JSON 可分为两类,一类是object ,一类是array。
1.1 object
引用官网的图,object 的定义为以'{'为起始符,'}'为结束符, 中间包含以','为间隔符的数个键-值对的集合,当然也可为空。
1.2 array
array 定义为以'['为起始符,']'为结束符, 中间包含以','为间隔符的数个value元素的集合,当然也可为空。
其中value可以为下面图示的几种类型,各个类型的具体定义可参考官网的描述。通过这些定义,可以实现JSON的分层和嵌套,比如 object 中可以嵌套array ,array 中可以嵌套object等等。
以一个例子来说明这些概念就会清楚很多,在该例子中,root object 中存在这name & resolutions 两个键值对,
其中resolutions 的value是一个array,array中的每一个item 为一个object,存在着width & height 两个键值对:
{
"name": "Awesome 4K",
"resolutions": [
{
"width": 1280,
"height": 720
},
{
"width": 1920,
"height": 1080
},
{
"width": 3840,
"height": 2160
}
]
}
二. cJSON
cJSON 是使用C 语言写成的一个可以使用在C 环境下的使用的