yaml演示

yaml演示

uses Neslib.Yaml;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{invoice.yaml
invoice: 34843
date   : 2001-01-23
bill-to: &id001
    given  : Chris
    family : Dumars
    address:
        lines: |
            458 Walkman Dr.
            Suite #292
        city    : Royal Oak
        state   : MI
        postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
    - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments: >
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.
    }
 
procedure TForm2.Button1Click(Sender: TObject);
//读
begin
  var Doc: IYamlDocument := TYamlDocument.Load('invoice.yaml');
  var Price: double := Doc.Root.Values['product'].Nodes[1].Values['price'].ToDouble;
  Caption := Price.ToString;  //2392
  Caption := Doc.Root.Values['product'].Nodes[1].Values['sku'].ToString; //BL4438H
  Caption := doc.Root.Values['invoice'].ToString;  //34843
end;
 
procedure TForm2.Button2Click(Sender: TObject);
//写
begin
  var Doc: IYamlDocument := TYamlDocument.CreateMapping;
  Doc.Root.AddOrSetValue('invoice', 34843);
  Doc.Root.AddOrSetValue('date', '2001-01-23');
  var Products: TYamlNode := Doc.Root.AddOrSetSequence('product');
  var Product: TYamlNode := Products.AddMapping;
  Product.AddOrSetValue('sku', 'BL394D');
  Product.AddOrSetValue('quantity', 4);
  Caption := doc.ToYaml;
end;

  

  

posted @   delphi中间件  阅读(320)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示