重要更新 – 请 QXML、QJson、QMsgPack、QLog、QWorker 用户更新

【问题描述】 该问题是由于 TQStringCatHelperW.Cat 函数在连接字符串时,计算需要的内存缓冲区大小不正确,可能造成构造较长的结果字符串时结果不正确,甚至可能出现 Access Volition 错误。问题发生在下面两个函数: function TQStringCatHelperW.Cat(p: PQ

QJson 更新-修正了 TQHashedJson 的两处Bug

【问题描述】 1、在调用 Parse 来解析一个 Json 封包的数据块时,没有正确的更新结点的哈希值,造成 Parse 后明明有的结点,用 ItemByName、IndexOf 等函数检索时,无法得到对应的结果。 2、在调用 IndexOf 等函数在忽略大小写时,由于没有正确处理,造成忽略大小写选项无效。 【严重程度

QJson更新-SaveToStream/SaveToFile增加ADoFormat参数决定是否格式化结果

【更新说明】 原来的 SaveToStream 和 SaveToFile 默认保存成数据流或文件时,会加入换行及缩进等控制字符,以便于阅读。考虑到网络传输,新增一个ADoFormat参数来控制此项开关,默认值为True,保持和原来一致。 【更新级别】 可选 【特别感谢】 恢弘、阿木

QJson更新-修正了在StrictJson为False时,解析包含//和/**/注释的内容时仍出错的问题

【问题描述】 此问题是由于 QJson 对注释位置的出现考虑不全面造成的,象解析下面的Json代码时会出错。 { “A”:”B”// 这是注释 } 新版 QJson 修正了这一问题并使用下面的测试用例进行了测试: //This is demo {//Json Start “A”/*Name*/:/*Value Star

QJson更新-新增HasChild函数简化编程

【更新说明】 HasChild函数用于判定当前结点下,是否存在指定路径的子结点,如果存在,则返回True,同时,通过AChild参数返回找到的子结点,如果失败,则返回False,等价于下面的代码: [Delphi] AChild:=AJson.ItemByPath(APath); if AChild<>ni

QJson/QMsgPack RTTI 注意事项

在Delphi截止XE7的实现中,RTTI信息也并不是特别完美,所以在特定的情况下是无法获取到相应的RTTI信息,目前已知: 1、在implementation中的声明没有RTTI信息,所以你要使用ToRtti/FromRtti/ToRecord/FromRecord等函数,你必需保证用到的类型声明的interface

QJson与QMsgPack中的RTTI调用演示

QJson和QMsgPack提供了对RTTI的支持,让你可以简洁方便的完成数据的转换存贮。因为QJson和QMsgPack在RTTI接口上是一致的,因此本文以QJson为例予以说明,如果要换成QMsgPack,只需要将类型声明换下就好:)。 1、记录类型 我们提供了FromRecord/ToRecord两个函数来完成记