使用chimera.json将JSON数组作为参数传递

时间:2013-01-08 09:24:42

标签: json delphi delphi-xe2

我是JSON的新手,使用Delphi XE2进行php和IOS开发。

我想解析一个从php脚本中得到的JSON数组           http://returnjson.ap01.aws.af.cm/returnjson.php

当它打开时,我将数组作为

 [{"cname":"MAAO"},{"cname":"MAIM"}]

我从http://arcana.sivv.com/chimera安装了此解析器 并且代码示例在这里

 procedure TForm1.Button3Click(Sender: TObject);
 var
  i : integer;
  obj : IJSONObject;
  begin
 obj := JSON('{"firstname":"leonard",'+
          ' "lastname":"nimoy",'+
          ' "email":['+
          '   "spock@enterprise.com",'+
          '   "lazydude@mars.com"]'+
          '}');
  Writeln(obj['firstname']);
  for i := 0 to obj.Arrays['email'].count-1 do
 begin
   Writeln(obj.Arrays['email'][i]);
  // StringGrid1.Cells[0,i]:=obj.Arrays['email'][i];
 end;

 obj['lastname'] := 'shatner';
 writeln(obj.AsJSON);
 ReadLn;
 end;

任何人都可以告诉我如何传递json数组   http://returnjson.ap01.aws.af.cm/returnjson.phpobj : IJSONObject;

1 个答案:

答案 0 :(得分:1)

您需要使用某种方式从网络服务器获取数据。我使用TMS网络软件组件。我不使用XE2所以不确定是否有本机组件来执行此操作。

我使用他们的webdata组件做类似的事情。删除表单上的webdata组件,然后删除示例中的代码: -

with webdata1.Data.Add do
begin
  scanfirst := '<span id="yfs_l10';
  scanfrom := '">';
  scanto := '</';
  url := 'http://finance.yahoo.com/q?s='+quotes+'&d=v1';
end;
end;

  webdata1.Execute;


  for i := 1 to stringgrid1.RowCount - 1 do
  begin
     stringgrid1.Cells[2,i] := webdata1.Data.Items[i - 1].Data;
  end;