博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi Sysem.JSON 链式写法(转全能中间件)
阅读量:5219 次
发布时间:2019-06-14

本文共 2000 字,大约阅读时间需要 6 分钟。

 链式写法有很多优点:连贯、语意集中、简洁、一气呵成、可读性强。比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() 轻车熟路的感觉,让人觉得,哇!好帅的写法,牛x。

      以前以为只有 TJSONBuilder 才支持链式语法,今天发现 TJSONObject 也支持,比如要生成下面的 JSON 

{  "name": "张三",  "vip": true,  "telephones": [    "13012345678",    "19786543210"  ],  "age": 24,  "size": 1.72,  "adresses": [    {      "adress": "foo",      "city": "The wall",      "pc": 57000    },    {      "adress": "foo",      "city": "Winterfell",      "pc": 44000    }  ]}

使用  TJSONObject 链式写法,代码如下:

var  JsonObject:TJSONObject;begin  JsonObject:= TJSONObject.Create;  JsonObject    .AddPair('name', TJSONString.Create('张三'))    .AddPair('vip', TJSONTrue.Create)    .AddPair('telephones',      TJSONArray.Create        .Add('13012345678')        .Add('19786543210')    )    .AddPair('age', TJSONNumber.Create(24))    .AddPair('size', TJSONNumber.Create(1.72))    .AddPair('adresses',      TJSONArray.Create        .Add(          TJSONObject.Create          .AddPair('adress', 'foo')          .AddPair('city', 'The wall')          .AddPair('pc', TJSONNumber.Create(57000))         )      .Add(          TJSONObject.Create          .AddPair('adress', 'foo')          .AddPair('city', 'Winterfell')          .AddPair('pc', TJSONNumber.Create(44000))        )    );  Memo1.Text := TConverters.JsonReformat(JsonObject.ToJSON);end;

Delphi 10.1 新增的一个JSON读写框架 : ,可以了解下:

Builder:=TJSONObjectBuilderEx.NewBuilder;Builder  .BeginObject    .Add('name','张三')     .Add('vip',true)    .BeginArray('telephones')      .Add('13012345678')      .Add('19786543210')    .EndArray    .Add('age',24)    .Add('size',1.72)    .BeginArray('adresses')      .BeginObject        .Add('adress','foo')        .Add('city','The wall')        .Add('pc',57000)      .EndObject      .BeginObject        .Add('adress','foo')        .Add('city','Winterfell')        .Add('pc',44000)      .EndObject    .EndArray  .EndObject;Memo1.Text := Builder.ToJSON;

 不过,看起来,使用 TJSONBuilder 层次更分明,更优雅。

 

转载于:https://www.cnblogs.com/Thenext/p/10651399.html

你可能感兴趣的文章
项目上传到github上
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
JS小工具_字符串转16进制数组_02
查看>>
信息安全系统设计基础实验四—20135214万子惠20135227黄晓妍
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
测试一个对象是否是类字符串
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
[转]SQL中 OVER(PARTITION BY) 取上一条,下一条等
查看>>
前端开发就从认识浏览器开始 - 浏览器处理请求的过程
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
jmeter系列二(jmeter engine相关)
查看>>
前端页面设计问题小计
查看>>
一份超全超详细的 ADB 用法大全
查看>>
Spring定时任务(@Scheduled)
查看>>
WebView 调试
查看>>
IB使用
查看>>
Linux硬链接和软链接(符号链接)
查看>>