欢迎光临散文网 会员登陆 & 注册

Json与Json工具介绍

2023-08-30 11:19 作者:BYYYSJX  | 我要投稿

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数字空间】可以给每位同学一个属于自己的秘密空间,同时祝愿大家在“公开圈子”世界里,遇见志同道合的伙伴们,因为我们与大家一样,都曾孤独前行着。


Json与Json工具介绍的评论 (共 条)

分享到微博请遵守国家法律