社区
网络通信/分布式开发
帖子详情
请问:如何用delphi实现XML的序列化和反序列化?
lbs
2006-07-10 10:00:42
请问:如何用delphi实现XML的序列化和反序列化?
...全文
317
5
打赏
收藏
请问:如何用delphi实现XML的序列化和反序列化?
请问:如何用delphi实现XML的序列化和反序列化?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuegang
2006-07-16
打赏
举报
回复
TClientDataSet 控件可读或写 XML 你可以看下它的源文件.
xuyun3
2006-07-12
打赏
举报
回复
XML-RPC
lbs
2006-07-11
打赏
举报
回复
各位高手有没有相关的例子,如果有请提供谢谢.
lbs
2006-07-10
打赏
举报
回复
Win32有没有相关的处理方法?谢谢
lextm
2006-07-10
打赏
举报
回复
Delphi for .NET里面和C#一样。不过Win32的没有做过。
Delphi
用Base64编码
实现
文件
序列化
该示例可以使文件被
序列化
为字符串,这样就可以将这个字符串装进
XML
文档,从而
实现
通用的文件传输功能。
Json To
Delphi
Class Generator / JSON Data Binding Tool
生成基于JSON字符串的
Delphi
类。就像
XML
数据绑定一样,但适用于JSON。 主要特点: 完全建立在RTL上(没有外部依赖),因此跨平台; 接受任何有效的JSON字符串,无论对象有多复杂; 以树形视图可视化JSON对象的结构; 根据输入的JSON字符串生成完整的
Delphi
单元(声明和
实现
); 自动在保留的
Delphi
关键字前添加“&”(和号); 如果JSON字符串包含空数组,则阻止单元生成; 添加支持代码以自动销毁复杂的子类型,因此您无需手动管理子对象的生命周期; 使用TArray表示列表; 添加辅助的
序列化
/
反
序列化
函数;
序列化
和
反
序列化
的结果与JSON结构相同! 自动检测日期/时间部分并将其映射到TDate/TDateTime(只要日期符合ISO8601标准); 将所有数字映射为Double; 将true/false值映射为Boolean; 允许更改属性名(键); 允许更改存根类的名称; 支持JSON格式化以美化输入字符串; 简单且响应迅速的图形界面; 基于ITask(并行编程库)自动检查更新!
Delphi
-JsonTo
Delphi
Class:根据JSON字符串生成
Delphi
类(Json To
Delphi
类生成器JSON数据绑定工具)
Delphi
-JsonTo
Delphi
Class 根据JSON字符串生成
Delphi
类。 就像
XML
数据绑定一样,但用于JSON。 主要特点: 完全基于RTL构建(无外部依赖项),因此它是跨平台的; 接受任何有效的JSON字符串,无论对象有多复杂; 在树视图中可视化JSON对象的结构; 根据JSON字符串输入生成完整的
delphi
单元(声明和
实现
); 自动为保留的
Delphi
单词加上前缀“&”(“&”); 如果JSON字符串包含空Array,则阻止单元生成;否则,阻止单元生成。 添加支持代码以自动销毁复杂的子类型。 因此,您不必手动管理子对象的生存期。 **使用TArray表示列表; 添加辅助程序
序列化
/
反
序列化
功能;
序列化
和
反
序列化
导致相同的JSON结构! 自动检测日期/日期时间部分并将它们映射到TDate / TDateTime(只要日期符合ISO8601)
Native
Xml
v4.07(含全部源码)
强大的
XML
组件,可以将对象直接存入
XML
文件,非常实用,而且开源! 很不错,推荐大家使用! 原来一直使用
Delphi
自带的T
XML
Document类来进行
XML
文件的读写,虽然麻烦了一点,但功能上来说还不错。只是有一个地方让我实在不舒服 - 每次创建T
XML
Document类实例的时候必须传入TComponent对象,这就意味着,如果我把对
XML
文件的读写封装到一个类里面,那么在创建这个自定义类的时候就必须也传入TComponent对象。 我尝试过很多方法,但是都无法避免,最后试着上网找了找,于是就找到了Native
XML
这个库。 下载之后马上打开Demo看了看,cool,创建TNative
XML
的时候只需要传入
xml
文件路径就可以,再往下看就让我开始惊喜了。它已经把大多数操作都封装好了,而且还具有把任意对象
序列化
的能力。 比如,你能把整个Form通过 Tsd
Xml
ObjectWriter = class(TPersistent) 类存入一个
XML
文件,下次再读取。这样使得远程传输对象变得很简单了。 下面就是一个使用Native
XML
库的例子: 目标
XML
结构: 2000-01-01
delphi
代码: procedure WriteTest; var
xml
: TNative
XML
; n_bs : T
XML
Node; begin //建立根节点
xml
:= TNative
Xml
.CreateName('bookshift');
xml
.EncodingString := 'GB2312'; //输出风格为易读
xml
.
Xml
Format := xfReadable; //建立Book节点 n_bs :=
xml
.Root.NodeNew('book'); //写入Book节点的属性 n_bs.WriteAttribuiteString('author','test_author'); //建立Book节点下属date节点并写入值 n_bs.WriteString('date','2000-01-01');
xml
.SaveToFile('test.
xml
'); end; 打开test.
xml
文件看看吧,和上面的格式一摸一样。 很简单吧,我用这个库重写了原来的
XML
访问类,大约节省了40%的代码量。
Delphi
-Serialization
#
Delphi
-Serialization
Delphi
-Serialization 提供将对象
序列化
和
反
序列化
为(目前仅)
XML
的功能。 路线图(粗略) 更多测试 更灵活
序列化
/
反
序列化
为 JSON 和更多 项目依赖 DunitX(测试框架) 夏普 弹簧4D 例子 var LCustomer: ICustomer; LSerializationFacade: TSerializationFacade; LOutputCustomer: TStringStream; begin LCustomer := TCustomer.Create; LSerializationFacade := TSerializationFacade.Create; LOutputCustomer := TStringStream.Create; try LSeri
网络通信/分布式开发
1,593
社区成员
32,964
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章