您的位置:首页 > Web前端 > JavaScript

JSON数据格式

2019-03-23 16:07 2606 查看

看到boost::property_tree类库的时候,发现它可以解析XML、JSON、INI,INFO格式的文件,XML和INI已经使用过,并且用别的库读取过了,而JSON这个看着面熟的格式,完全没有用过,只是知道在web应用里经常用到。所以今天我们就来看看JSON到底是个什么东西,它的数据格式和用途。

1.什么是JSON

JSON是一种轻量级的数据交换格式,全称是:JavaScript Object Notation,它有完全独立的数据格式,所以它是独立于任何编程语言的,它不太易于阅读,但是易于机器解析和生成。

2.JSON数据格式

JSON有两种格式

  • 名称/值 成对的集合,类似于关联数组或者map结构。

    实例:

    {"name": "eliteYang"}

    这个结构显然没有name=eliteYang来的直接和明显,而且浪费了很多引号,但是如果多个结构就会体现出这种结构的优势了,例如:

    {"name": "eliteYang", "name": "AAA", "name"="BBB"}

    前面我说过,这种结构不太容易阅读,这里它明显看起来很纠结,所以有些人说这个容易阅读让我很费解,大概是写代码写多了,接近机器了吧。

  • 值的有序列表,大部分语言中,这种结构被称之为数组。

    实例:

    {"address":[
    {"name":"eliteYang", "email":"elite_yang@163.com"},
    {"name":"AAA", "email":"aaa@163.com"},
    {"name":"BBB", "email":"bbb@163.com"}
    ]}
3.JSON的用途

JSON主要用于数据传输和转化,常用在web服务中,例如本站用的多说评论插件,它就是使用JSON将评论数据同步到多说的服务器上的,同时,显示评论也是从多说的服务器上通过JSON请求过来的。JS非常容易操作JSON,因为JSON的数据格式是JS原生的数据格式。当然了,其他方面也可以使用,比如网络传输,将JSON转化成字符串,压缩加密后用于消息事件,或者存储数据库时,将一些数据整个存成JSON格式,然后做成一个字符串存入数据库,还有许多用途,这里就不一一介绍了。

PS:

JSON与XML格式的比较:

优点:JSON占用较少字符,主要用在JS上,对存储JS复合对象来说很方便

缺点:JSON不易于阅读,可扩展性不强,而XML天生就有很强的扩展性,并且完全符合人类的阅读习惯。

而从编写角度来说,都差不多,因为现在都有专门的工具来编写两种格式的文件,解码难度也是近似的,都需要知道节点名,然后读取出数据。

C++操作JSON文件主要使用的库有boost.property_tree和JSONcpp等类库。

C++操作XML文件主要使用的库有rapidxml、tinyxml、boost.property_tree等类库。

下两篇我们会分别用C++操作JSON文件,来演示和说明boost.property_tree和JSONcpp的用法。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息