yaml演示

yaml演示

uses Neslib.Yaml;

{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 @ 2021-01-02 19:54  delphi中间件  阅读(313)  评论(0编辑  收藏  举报