Json与Json工具介绍

Json 语法是 JavaScript 语法的子集,是 Key : value 的模式。

Json (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

比如下面就是一个 json 对象,里面包含了字符串、整数、浮点数、普通数组、对象、 对象数组,从中可以窥探到 Json 的语法。Json中key值都是" "号的字符类型,value值中 { } 表示是对象、[ ] 表示的是数组、" "表示的是字符串、null表示的时空,不能用"null"表示。 

JSON 值可以是:

  1. 数字(整数或浮点数)
  2. 字符串(在双引号中)
  3. 逻辑值(true 或 false)
  4. 数组(在中括号中)
  5. 对象(在大括号中)
  6. null

cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。cJSON库使解析和组装JSON数据包的工作便会变得简单的多,下面是cJSON中CJSON结构。(cJSON是采用C语言编写的)

next、prev 用于遍历数组或对象链的 前向 后向 链表指针。child 指向数组或对象的 孩子节点。type 是 value 的类型。valuestring 是字符串值。valueint 是整数值;。valuedouble 是浮点数值。string 是 key 的名字。

RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。RapidJSON是跨平台的,支持Windows, Linux, Mac OS X及iOS, Android。

RapidJSON特点

  • 小而全:它同时支持SAX和DOM风格的API,SAX解析器只有约500行代码。(Document Object Model ,DOM 文档对象模型 )
  • 快:它的性能可与strlen()相比,可支持SSE2/SSE4.2加速,使用模版及内联函数去降低函数调用开销。
  • 独立:它不依赖于BOOST等外部库,它甚至不依赖于STL。
  • 对内存友好:在大部分32/64位机器上,每个JSON值只占16字节(除字符串外),它预设使用一个快速的内存分配器,令分析器可以紧凑地分配内存。

每个JSON值都储存为Value类,而Document类则表示整个DOM,它存储了一个DOM 树的根Value。RapidJSON的所有公开类型及函数都在rapidjson命名空间中。

WRITE-BUG研发团队衷心希望【WRITE-BUG数字空间】可以给每位同学一个属于自己的秘密空间,同时祝愿大家在“公开圈子”世界里,遇见志同道合的伙伴们,因为我们与大家一样,都曾孤独前行着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值