cJSON Note(1):JSON数据结构

引言(Introduction)

写在文章开头的一句话。本文内容的参考资料在网上都能够找得到,本文仅代表笔者关于json的学习笔记。

在介绍cJSON的使用与源码之前,特地根据cJSON的Github的介绍,前往json数据格式的介绍网站学习了一下json数据结构。根据官网上的介绍与Wikipedia的介绍,JSON(JavaScript Object Notation)是一种开放的标准文件格式与数据交互格式,其使用人们可以阅读的文本存储键值对信息。JSON采用的是完全独立于编程语言的文本格式,虽然其是从JavaScript继承下来的,但是现代的编程语言都能够产生与解析JSON数据。

1.JSON总体结构(overall structure)

JSON总体结构包含以下两种:

  • 键值对的集合(A set of key-value pair)。即由一个键和对应的值构成的集合。
    “不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)”;

在这里插入图片描述

上图是一个对象的结构,可以看到,键值对"string:value"中,使用字符串格式代表键名,使用value表示键的值。键的值可以为字符串,数字或者一个对象等。

“对象是一个无序的“‘名称/值’对”集合。一个对象以 {左括号 开始, }右括号 结束。每个“名称”后跟一个 :冒号 ;“‘名称/值’ 对”之间使用 ,逗号分隔。”

  • 值的有序列表(An ordered list of values)。即数组。
    数组就是普通意义上的数组,以左中括号[开始,到右中括号]结束。

在这里插入图片描述

2.JSON数值结构(value structure)

JSON的内部中包含的数据类型即值的类型,可以为字符串(string),数字(number)等。

在这里插入图片描述

其字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

在这里插入图片描述

数字类型(number)也与C或者Java的数值非常相似。

在这里插入图片描述

而空白可以加入到json结构中的任意符号之间。

在这里插入图片描述

3.例子(example)

本文给出一个简单的例子,后续实验都是在该例子的基础上对cJSON进行介绍。

{
    "name": "Zhang San",    // string
    "sex": 1,               // boolen
    "height": 1.8		    // number, double
    "family": [			    // array
        {
            "name": "Zhang Si",
            "relationship": "Father"
        },
        {
            "name": "Li Si",
            "relationship": "Mother"
        }
    ],
    "birthday": { 		    // object
        "year": 2000,
        "month": 1,
        "day":1
    },
}

上式是一个简单例子,笔者尽可能地在该例子中包含各种类型的数值了。

4.总结(Conclusion)

json数据类型在交互数据中是非常常用的,不仅应用到数据传送中,在配置文件中也经常用到该数据结构。所以笔者就以这篇文章作为后续对cJSON学习的开篇了。

参考资料(Reference)

cJSON-Github

json-data structure

json-data structure

JSON

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值