用SuperObject 解析淘宝上的Json 数据- 回复"macrolen" 的问题- 万一的 ...

macrolen 给了这样一些数据, 说是用淘宝的 API 获取的 JSON 数据, 让我帮助解析:


把这些数据保存在: c:\temp\json.txt; 然后在窗体上放一个 Memo 和四个 Button ...
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses SuperObject;
var jo: ISuperObject;

//载入并建立对象
procedure TForm1.FormCreate(Sender: TObject);
const
  JsonPath = 'c:\temp\json.txt';
begin
  Assert(FileExists(JsonPath), '文件不存在');
  with TStringList.Create do
  begin
    LoadFromFile('c:\temp\json.txt');
    jo := SO(Text);
    Free;
  end;
end;

//按格式查看所有
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := jo.AsJSon(True, False);
end;

//查看: items_search_response.item_search.item_categories
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Text := jo['items_search_response.item_search.item_categories'].AsJSon(True, False);
end;

//查看: items_search_response.item_search.items
procedure TForm1.Button3Click(Sender: TObject);
begin
  Memo1.Text := jo['items_search_response.item_search.items'].AsJSon(True, False);
end;

//遍历 items_search_response.item_search.items.item 数组中的指定元素
procedure TForm1.Button4Click(Sender: TObject);
var
  ja: TSuperArray;
  i: Integer;
begin
  ja := jo['items_search_response.item_search.items.item'].AsArray;
  Memo1.Clear;
  for i := 0 to ja.Length - 1 do
  begin
    Memo1.Lines.Add(ja.O[i].Format('%cid%; %location.state%; %location.city%'));
  end;
end;

end.


另外 SuperObject 当前的{zx1}版本是: SuperObjectv1.2.3, 还没有测试它新增的功能, 不过我这个是用它做的.

郑重声明:资讯 【用SuperObject 解析淘宝上的Json 数据- 回复"macrolen" 的问题- 万一的 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——