Delphi XE DBX 序列化Json的bug
来源:互联网 发布:js数组去掉重复值 编辑:程序博客网 时间:2024/04/29 08:40
delphi XE Update1 15.0.3953.35171
序列化一个阵列,如下:
procedure TForm1.Button2Click(Sender: TObject);var vObject:TJsonObject; vPair:TJsonPair;begin vObject:=TJsonObject.Create(); vPair:=TJsonPair.Create('Name','A"B\''C中国'); vObject.AddPair(vPair); Edit1.Text:=vObject.ToString;end;
得到的结果为:{"Name":"A"B\'C中国"}
很明显结果是错的,双引号没有转义。查找代码,发现是这个地方的错误:
DBXJSON.pasfunction TJSONString.ToString: UnicodeString;begin if FStrBuffer <> nil then Exit('"' + FStrBuffer.ToString + '"'); Result := NullString;end;
居然QuotedStr函数都没有用,更别谈斜杠的转义。
在Delphi XE2 update 3 16.0.4358.45540 版本,发现代码修改了:
function TJSONString.ToString: UnicodeString;begin if FStrBuffer <> nil then Exit('"' + AnsiReplaceStr(FStrBuffer.ToString, '"', '\"') + '"'); Result := NullString;end;
这次把引号转义了,但是还有问题:如果里面本身已经有斜杠了,难道不用转义??哎,头继续大。
- Delphi XE DBX 序列化Json的bug
- 从DELPHI7至XE一直都有的BUG,关于DBX中使用的IsMultiTableQuery函数
- delphi xe 解析复杂json
- Delphi XE 3 处理JSON对象的基本功能示例
- Delphi XE 的字符串理解
- Delphi XE TLinkLabel的使用
- DELPHI XE2 采用 JSON 的方式来序列化对象
- DELPHI XE2 采用 JSON 的方式来序列化对象
- Delphi XE10 序列化 TDictionary 为 JSON 的问题
- Delphi XE 调用 C++ Builder XE 开发的DLL库
- Delphi2009的Bug:WinSocket元件接收和发送的编码不一致(在Delphi XE版本中已做修改)
- Delphi XE 的一些新函数
- Delphi XE 的一些新类
- delphi XE 学习 ---- night_cat的专栏
- Delphi7 To Delphi XE的变化
- Delphi7 To Delphi XE的变化
- DELPHI XE 调用 DELPHI 7 写的DLL的问题
- 减小Delphi 2010/delphi XE编译出来的文件大小
- Winform 如何防止双击标题栏、移动窗体
- Sqlite3数据类型
- arcgis server 10安装说明
- dynamic-update
- IOS线程的使用
- Delphi XE DBX 序列化Json的bug
- LINQ 学习笔记(01)
- http://www.cnblogs.com/hanfei8987/articles/1320380.html
- 不足6位左补0 DecimalFormat
- KMP算法详解
- android学习笔记30--------------聊天式对话效果
- 计算机I/O原理
- struts2提交表单乱码问题处理
- web.xml配置详述