Delphi Sysem.JSON 链式写法
Posted 全能中间件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi Sysem.JSON 链式写法相关的知识,希望对你有一定的参考价值。
链式写法有很多优点:连贯、语意集中、简洁、一气呵成、可读性强。比如要把 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读写框架 :Readers and Writers JSON Framework ,可以了解下:
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 层次更分明,更优雅。
以上是关于Delphi Sysem.JSON 链式写法的主要内容,如果未能解决你的问题,请参考以下文章