|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2017/11/18 14:21:43 |
标题: |
Delphi 自带的 System.Json 对象/结构体序列化性能大增 |
浏览:3679 |
|
加入我的收藏 |
楼主: |
今天在盒子闲逛,无意中看到有人说XE7自带的Json对象序列化很慢,帖子在这里:http://bbs.2ccc.com/topic.asp?topicid=464378 经过测试的确如此。 但是 D10.2后,自带的Json做了优化,性能大大的提高了。
此帖子包含附件:
大小:13.2K |
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw |
作者: |
|
2017/11/18 14:24:50 |
1楼: |
附测试代码:
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2017/11/18 15:29:52 |
2楼: |
虽然现在重点是移动开发了,大部分更新都是FMX,但是windows也是在不断优化的,还增加很多基础功能,比如System.Threading、System.Net.HttpClient、System.Hash,还有 TEncoding 处理各种编码不知道有多方便。 所以别说什么windows开发,没必要升级到高版本,D7够用了之类的话。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2017/11/18 22:18:01 |
3楼: |
平时没测这么细,
----------------------------------------------
-
|
作者: |
|
2017/11/18 23:14:23 |
4楼: |
System.Net.HttpClient 这个真的不错,比原来的ihttp牛叉太多
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
|
作者: |
|
2017/11/21 16:00:29 |
6楼: |
Json使用示例解析、组装、增加、删除、查询天气、查询快递等等(采用Delphi自己带的json解析单元)
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
|
作者: |
|
2017/12/5 10:15:59 |
7楼: |
最近在玩玩手机端天气查询,用idhttp查询时会出现些问题,http和https网址之间切换查询会出错,后来换TNetHTTPClient随意切换,所以说delphi一直在进步,而且进步很大。
----------------------------------------------
-
|
作者: |
|
2017/12/5 14:17:51 |
8楼: |
果然有进步,终于赶上了2005年的行业平均水平!!!
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
|
作者: |
|
2017/12/6 8:46:40 |
9楼: |
和其他json库对比了序列化和反序列化性能,JsonDataObjects 性能最好,但是只支持简单的对象,不支持结构体,QJson 则不支持动态数组,不支持 Attributes (RTTI),比如需要排除某些字段,System.Json 和 XSuperObject 可支持。总体来说,个人比较喜欢10.2新增的 TJsonSerializer,简洁、且使用方便,无需第三方库,如果要在低版本 Delphi 使用,JsonDataObjects 是不错的选择。
此帖子包含附件:
大小:38.4K |
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2017/12/14 9:45:49 |
10楼: |
支持,楼主辛苦了
----------------------------------------------
-
|
作者: |
dmzn (dmzn) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2018/1/3 17:06:59 |
11楼: |
TRecord结构的序列化代码如下: //Date: 2017-12-20 //Parm: 结构数据 //Desc: 序列化nRecord为json字符串 class function TEncodeHelper.EncodeRecord<T>(const nRecord: T): string; var nSeriallizer: TJsonSerializer; begin nSeriallizer := nil; try nSeriallizer := TJsonSerializer.Create; with nSeriallizer do begin Formatting := TJsonFormatting.None; DateParseHandling := TJsonDateParseHandling.None; DateTimeZoneHandling := TJsonDateTimeZoneHandling.Utc; DateFormatHandling := TJsonDateFormatHandling.FormatSettings; end;
Result := nSeriallizer.Serialize<T>(nRecord); //do serial finally nSeriallizer.Free; end; end;
//Date: 2017-12-20 //Parm: 序列化json字符串 //Desc: 将nRecord反序列化为T结构 class function TEncodeHelper.DecodeRecord<T>(const nRecord: string): T; var nSeriallizer: TJsonSerializer; begin nSeriallizer := nil; try nSeriallizer := TJsonSerializer.Create; with nSeriallizer do begin Formatting := TJsonFormatting.None; DateParseHandling := TJsonDateParseHandling.None; DateTimeZoneHandling := TJsonDateTimeZoneHandling.Utc; DateFormatHandling := TJsonDateFormatHandling.FormatSettings; end;
Result := nSeriallizer.Deserialize<T>(nRecord); //do serial finally nSeriallizer.Free; end; end;
----------------------------------------------
生活愉快.
|
作者: |
|
2018/1/3 22:10:57 |
12楼: |
好,不错
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
|
作者: |
|
2018/1/19 16:24:37 |
13楼: |
json 不错
----------------------------------------------
-
|
|