0

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

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

当它打开时,我得到的数组为

 [{"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.php 传递到 obj : IJSONObject;

4

1 回答 1

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;
于 2013-01-08T12:39:55.057 回答