QJson和QMsgPack提供了对RTTI的支持,让你可以简洁方便的完成数据的转换存贮。因为QJson和QMsgPack在RTTI接口上是一致的,因此本文以QJson为例予以说明,如果要换成QMsgPack,只需要将类型声明换下就好:)。 1、记录类型 我们提供了FromRecord/ToRecord两个函数来完成记
分类: QJSON
QJson更新-修正了FromRtti/ToRtti在处理TCollection类型时存在的问题
【问题描述】 由于FromRtti在处理TCollection类型的对象时,没有将对象类型改成数组,造成由于子结点没有名称而被提示:“对象 xxx 的第 n 个子结点名称未赋值,编码输出前必需赋值。”。 要重现问题,只需要简单的传递一个TCollection对象给FromRtti函数即可。 另外,对应的ToRtti函数
QJson更新-修正了FromRtti的一处问题并增加一组函数
【问题描述】 1、FromRtti处理集合类型时,如果JsonRttiEnumAsInt设置为True,在添加成员名称时,错误的将AName写成了Name造成名称为空。 2、新增IntByPath,IntByName,BoolByPath,BoolByName,FloatByPath,FloatByName,DateT
QJson与RapidJson性能的简单对比测试
盒子上一位朋友想知道QJson和C++编写的RapidJson之间的性能对比情况,限于精力,我只是简单的测试了下加载一个大的Json文件来对比解析性能(Demos\Delphi\VCL\QJson\Preferences.txt,文件大小:9.81MB),但做测试大家都知道与测试样本的关系很大,这里只对这一个测试用例负
QJSON更新-修正了移动节点时未检查自己是否是目标的父结点问题
【问题描述】 新增加的函数MoveTo在移动结点时,如果错误的将目标结点设置为自己的子结点,程序未报错但执行结果是错的。本更新解决这一问题,并会在发生这一情况时抛出异常,提示用户不能将自己移动到自己的子结点下。 【严重程序】 中等 【更新级别】 推荐
QJson更新-增加Remove、Detach、AttachTo、MoveTo函数及允许重命名
【更新内容】 1、新增Remove函数移除指定的子结点,与Delete的区别在于Remove并不会释放子结点,而只是将其从父结点中移除而已。 /// <summary>将指定索引的子结点移除</summary> /// <param name=”AItemIndex”>要移除的子结点
QJSON更新-修改了保存策略
【问题描述】 QJSON如果直接保存一个结点,而这个结点不是对象或数组时,可能会生成无效的JSON数据,因此,将保存的策略进行了变更: 1、如果JSON结点的名称已经指定,则保存为对象的一个子对象; 2、如果未指定名称,且类型为未知或为jdtNull,则不保存任何内容 【严重级别】 中 【更新级别】 建议更新 【特别感
QJson更新-修正了Add函数解析特定字符串时丢失内容的问题
【问题描述】 问题发生在Add成员自动解析字符串类型的值时,如AJson.Add(‘Name’,’”ABC’),此时,ParseJsonString函数未检查字符串引用符号是否匹配造成结果为ABC,而不是”ABC。但请注意,如果是AJson.Add(̵
QJson更新-修复了阿木报告的一个Bug
问题是由于解析带有注释时JSON数据时,如果后面跟着数组或对象结束符,解析会失败。例如下面的JSON代码会解析失败: { “Name”:”MyName” //这是引起问题的注释 } 感谢阿木的报告,问题已经得到修正,没有包含注释的JSON不会受此问题影响。
QJSON专题-Delphi/C++ Builder的快速JSON解析单元
QJSON – Delphi下快速的JSON解决方案 【转】封三郎-Delphi用QJSON解析JSON格式的数据 QJSON中编码函数Encode的特别说明 QJson/QMsgPack RTTI 注意事项 示例-向QJson实例中添加子结点的方法小结 示例-QJson中结点的查找与遍历方法小结 QJSON vs l
JSON内容查看器,基于QJson设计
一个简单的工具,用来查看JSON的内容以供分析,源码位于QDAC的Demo\Delphi\VCL\JsonView目录下,可以自行编译,也可以下载。 【下载地址】 百度网盘
QJSON vs lkJson vs SuperObject 速度大PK
测试环境:RadStudio XE6 Update 1 【注意】本测试结果仅对当时测试的版本负责,不代表后续版本结果。
QJSON中编码函数Encode的特别说明
QJson.Encode是用于将当前JSON对象的内容格式化为字符串的函数,AsString/toString/AsJson函数实际低层都调用了它,而在网络传输时,我们实际上并不需要换行等空白字符,此时,手动调用Encode时将第一个ADoFormat参数设置为False。另外,部分控件或软件可能要求中文等特殊字符必需
【转】封三郎-Delphi用QJSON解析JSON格式的数据
原始链接:http://www.cnblogs.com/codingnote/p/3821025.html 本来用superobject来解析JSON已经够用了,可惜这个东东不能在移动端使用,于是找到QJSON来处理。 这是一个国内高手写开源免费的东西,赞一个。 假入数据如下: {“message”:”ok”,”sta
QJSON – Delphi下快速的JSON解决方案
JSON做为一个后起的通用数据交换格式,Delphi后期的版本虽然提供了原生的支持,但早期并没有提供支持,由此产生了许多的JSON解析器,如lkJson、SuperObject的Json单元、RTC的Json单元,但当我们要找到符合下述要求的JSON组件时,会发现几乎没有什么选择: √ 开源,可以免费使