精易论坛

标题: 基于开源项目《JSON CPP》的JSON解析引擎移植,支持库版。 [打印本页]

作者: 黑猫よ__    时间: 2016-7-21 13:21
标题: 基于开源项目《JSON CPP》的JSON解析引擎移植,支持库版。
       JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,Jsoncpp是个跨平台的开源库,下载地址:http://sourceforge.net/projects/jsoncpp/
         支持库以 v0.5.0 版本为基础进行了易语言版的移植和封装,现以支持源项目的大部分常用功能,并提供静态库,支持静态编译。


《JSON CPP》使用介绍:


  支持库一共提供两个对象,"JSONT::引擎","JSONT::节点",作用为:


JSONT::引擎  负责对JSON格式文本的解析以及生成"JSONT::节点"对象,提供3个命令:


JSONT::引擎.解析()  解析JSON格式文本,如果解析是成功的将返回真。


JSONT::引擎.取错误信息()  取出解析失败的原因。


JSONT::引擎.成功了吗()  原指令为: good()。


JSONT::节点  负责生成以及维护解析所获得的"JSON树",并提供各个节点的访问操作,提供10个命令:


JSONT::节点.类型为() 检查指定的JSON节点是否为预估的类型,如果预估是正确的将返回真。


JSONT::节点.取类型() 获得指定JSON节点的类型,具体的数据类型可以参考,"#JSONT类型"常量。


JSONT::节点.取项值() 获得指定JSON节点的内容,支持的数据为: 整数型,无符号整数型,浮点型,文本型,逻辑型。


JSONT::节点.置项值() 设置知道JSON节点的内容,支持的数据为: 整数型,无符号整数型,浮点型,文本型,逻辑型。


JSONT::节点.取文本() 取出"JSON树"所对应的原始JSON格式文本。


JSONT::节点.取大小() 如果指定JSON节点为数组类型,将可以获得该数组的大小。


JSONT::节点.取对象() 如果知道JSON节点为对象类型,将可以获得该JSON对象。


...




《JSON CPP》语法介绍:


   支持库提供一种类似于字典式的,节点描述语法,通过使用"[name][name]..."格式,以描述JSON节点位于JSON树中的具体位置。


[name] 表示JSON节点名称.
[index] 表示数组下标,下标从0开始。
[#number] 如果指定的JSON名称全部为数字,则需要在名称的前面加一个"#"号以示区别。


参考:


{
        "uploadid": "UP000000",
        "code": 100,
        "msg": "",
        "files": "",
        "sharp":[
                        {"test1":"hello World","test2":"xxxxx"},
                        {"test1":"abcde","test2":"xxxxx"}
                ]
}

示例:

value = JSONT::节点.取项值("[uploadid]",#JSONT类型.文本型) //表示读取JSON树中的"uploadid"节点内容,节点类型为文本型。

value = JSONT::节点.取项值("[sharp][0][test1]",#JSONT类型.文本型) //表示读取JSON树中的"sharp"节点数组中第1个成员对象的"test1"节点内容,节点类型为文本型。

count = JSONT::节点.取大小("[sharp][0]") //表示读取"sharp"节点数组的大小

object = JSONT::节点.取对象("[sharp][0]") //表示读取"sharp"节点数组中第1个成员对象的值,返回类型为: JSONT::节点。

=====================================================================================


支持库下载:


黑猫JSON解析支持库1.0版.zip (287.17 KB, 下载次数: 146)


欢迎使用 , 祝您一帆风顺,心想事成!
如果你想了解,获得更多,更好的项目,或者作品,请关注黑猫的软件,技术,编程交流群:89456201.

新作品列表:

《Kirinoium》 浏览器,一款基于WebKit/Blink引擎的免费网页浏览器。

《Yaoon》   遥望浏览器,一款专注于填表,采集的网页浏览器,基于《Kirinoium》的分支版本
《YaoonUI》 遥望浏览器,UI版,以Html5桌面应用,无缝Web交互为主要设计目标的浏览器,专门用于程序界面,Web应用搭载等方面,《Yaoon》的分支版本。
《JSON解析支持库》 基于优秀的开源项目《JSON CPP》的易语言移植版本。
《线程池支持库》 完全由本人自主设计的支持高并发,高负载,且非常简单的(只有6个命令)线程池。





作者: qqq123123123    时间: 2016-7-21 13:27
前来支持一下!···
作者: 胆小的老虎    时间: 2016-7-21 14:53
论坛终于有大牛了     
作者: 282134    时间: 2016-7-21 16:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 内个打杂滴    时间: 2016-7-21 18:33
效率呢??和水淼的模块比,效率如何???
作者: 玖龄后梦劭    时间: 2016-7-21 23:28
黑猫大大太帅了
作者: huanzi360    时间: 2016-7-26 09:40
这个支持库很好很牛逼谢谢分享!
作者: xh4528    时间: 2016-7-28 19:15
感谢分享,试试
作者: 周正    时间: 2016-8-4 11:17
好东西,支持啦!
作者: 周正    时间: 2016-8-4 11:25
貌似不支持黑月编译?要是能支持黑月编译就更好了;
作者: 黑白郎君    时间: 2016-10-18 17:13
要是能开源就更好了!
作者: 坏蜀黍    时间: 2016-11-3 15:16
用过N种json模块,几乎都有问题,只要我测试没问题的json模块,那真的可能是无BUG了
作者: 坏蜀黍    时间: 2016-11-3 16:43
解析速度真是太慢,就这速度 在完美也不敢用啊
作者: hsg52052    时间: 2019-10-12 14:21





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4