看本文章前请 参考 基本探索1 的部分内容
下面介绍如何 从datasnap rest 服务返回 JsonArray 数组
后台代码
声明
function GetArr:TJSONArray;
实现
function TSMTest.GetArr:TJSONArray;
var
arr:TjsonArray;//TStrArr;
I: Integer;
begin
// SetLength(arr,5);
arr:=TjsonArray.Create;
for I := 0 to 5 do
begin
arr.Add( '字符串数组'+inttostr(i));
end;
result := arr;
end;
前台Flex 返回Json数据
{"result":[["\u5B57\u7B26\u4E32\u6570\u7EC40","\u5B57\u7B26\u4E32\u6570\u7EC41","\u5B57\u7B26\u4E32\u6570\u7EC42","\u5B57\u7B26\u4E32\u6570\u7EC43","\u5B57\u7B26\u4E32\u6570\u7EC44","\u5B57\u7B26\u4E32\u6570\u7EC45"]]}
里面有中文 Json 自己编码了
前台效果 如图
前台代码
protected function btnArr_clickHandler(event:MouseEvent):void
{
var read : ReadDataFromServer = new ReadDataFromServer;
read.onLoadComplete = onArrLoad;
read.Load('datasnap/rest/TSMTest/GetArr');
}
public function onArrLoad(e:Event):void{
//delphi datasnap 返回 TjsonArray 才可以,普通array 不行
var list:ArrayList = new ArrayList( JSON.decode(e.target.data).result[0]);
arrlist.dataProvider = list;
//edtInt.text = JSON.decode(e.target.data).result[0];
}
是不是写的很详细...同学你想试试么
