|
本帖最后由 黑猫よ__ 于 2017-5-3 13:55 编辑
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,它基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
本支持库以开源库《JSONCPP》为基础,进行扩展开发而来,支持标准JSON格式数据的解析和生成。
解析例子:
{
"test1":"Hello World!",
"test2":100,
"test3":3.14,
"test4":true,
"test5":4294967296,
"test6":{"child1":"1111","child2":"2222"},
"array":[{"app1":"aaaa","app2":"bbbb"},{"app1":"cccc","app2":"dddd"}]
}
变量名 | 类 型 | 静态 | 数组 | 备 注 | Reader | Json::Reader | | | Root | Json::Value | | | Array | Json::Value | | | i | 整数型 | | | test1 | Json::Value | | | 判断 (Reader. 从文本解析 ( #常量1, Root )) 调试输出 (Root. At (“test1”). asString ()) 调试输出 (Root. At (“test2”). asInt ()) 调试输出 (Root. At (“test3”). asDouble ()) 调试输出 (Root. At (“test4”). asBool ()) 调试输出 (Root. At (“test5”). asInt64 ()) 调试输出 (“===========================================================”)调试输出 (Root. At (“test6”). At (“child1”). asString ()) 调试输出 (“===========================================================”)Array = Root. At (“array”)如果真 (Array. isArray ()) 调试输出 (“数组长度:”, Array. Length ()) 计次循环首 (Array. Length (), i )调试输出 (i, Array. Index (i - 1 ). At (“app1”). asString ()) 计次循环尾 ()调试输出 (“===========================================================”)test1 = Root. At (“test1”)调试输出 (“状态判断:”)调试输出 (“是否为文本型: ”, test1. isString ()) 调试输出 (“是否为逻辑型: ”, test1. isBool ()) 调试输出 (“是否为整数型: ”, test1. isInt ()) 调试输出 (“是否为双精度小数型: ”, test1. isDouble ()) 调试输出 (“是否为长整数型: ”, test1. isInt64 ()) 调试输出 (“是否为空: ”, test1. isNull ()) 调试输出 (“是否为对象: ”, test1. isObject ()) 调试输出 (“是否为数组: ”, test1. isArray ()) 调试输出 (“解析失败,错误信息: ”, Reader. 取错误信息 ()) 标准输入 ()返回 (0 )
* “Hello World!”
* 100
* 3.140000
* 真
* 4294967296
* “===========================================================”
* “1111”
* “===========================================================”
* “数组长度:” | 2
* 1 | “aaaa”
* 2 | “cccc”
* “===========================================================”
* “状态判断:”
* “是否为文本型: ” | 真
* “是否为逻辑型: ” | 假
* “是否为整数型: ” | 假
* “是否为双精度小数型: ” | 假
* “是否为长整数型: ” | 假
* “是否为空: ” | 假
* “是否为对象: ” | 假
* “是否为数组: ” | 假
生成例子:
变量名 | 类 型 | 静态 | 数组 | 备 注 | Root | Json::Value | | | Object | Json::Value | | | Array | Json::Value | | | item1 | Json::Value | | | item2 | Json::Value | | |
Root. Add (“test1”, “1111”) Root. Add (“test2”, 1024 ) Root. Add (“test3”, 真) Root. Add (“test4”, #pi ) Root. Add (“test5”, 4294967296 ) Object. Add (“child1”, “1111”)Object. Add (“child2”, “2222”)Root. Add (“object”, Object ) item1. Add (“min”, “aaaa”)item1. Add (“max”, “bbbb”)item2. Add (“min”, “cccc”)item2. Add (“max”, “dddd”)Array. Append (item1 ) Array. Append (item2 ) Root. Add (“array”, Array ) 信息框 (Root. toStyledString (), 0, , ) 标准输入 ()返回 (0 )
常用编码转换例子:
调试输出 (A2W (“你好!”)) 调试输出 (W2A ({ 96, 79, 125, 89, 33, 0, 0, 0 })) 调试输出 (A2T (“你好!”)) 调试输出 (T2A (“浣犲ソ!”)) 调试输出 (格式化字符串 (“你好!”, 真, 0 )) 调试输出 (格式化字符串 (“\u4f60\u597d\u0021\ubaad\uf00d”, 假, 0 )) 调试输出 (格式化字符串 (“你好!”, 真, 1 )) 调试输出 (格式化字符串 (“%u4f60%u597d%u0021%ubaad%uf00d”, 假, 1 )) 调试输出 (格式化字符串 (“你好!ABC D”, 真, 2 )) 调试输出 (格式化字符串 (“%E4%BD%A0%E5%A5%BD%21ABC%20D”, 假, 2 )) 标准输入 ()返回 (0 )
转换结果:
* 字节集:8{96,79,125,89,33,0,0,0}
* “你好!”
* “浣犲ソ!”
* “你好!”
* “\u4f60\u597d\u0021\ubaad\uf00d”
* “你好!”
* “%u4f60%u597d%u0021%ubaad%uf00d”
* “你好!”
* “%E4%BD%A0%E5%A5%BD%21ABC%20D”
* “你好!ABC D”
=======================================================
支持库下载:
链接: https://pan.baidu.com/s/1slGv1il 密码: mph2
|
评分
-
查看全部评分
|