算是自己备忘吧,也免得大家遇到同类问题再重复劳动,现将DelphiXE 自带的JSON操作类的使用方法总结如下:
先介绍一下最基本的TJSONObject的使用。
uses System.JSON;
var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
JSON.AddPair('name', 'mestars');
JSON.AddPair('age', '33');
Memo1.Lines.Text := JSON.ToString; //=> {"name":"mestars","age":"33"}
JSON.Free;
对于数值类型就需要使用TJSONNumber了,TJSONNumber支持Double、Integer、Int64等。使用方法如下
uses Data.DBXJSON;
var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
JSON.AddPair('Double', TJSONNumber.Create(123.456));
JSON.AddPair('Integer', TJSONNumber.Create(6789));
JSON.AddPair('string', TJSONNumber.Create('1000'));
Memo1.Lines.Text := JSON.ToString; //=> {"Double":123.456,"Integer":6789,"string":1000}
JSON.Free;
Boolean类型的值需要用到TJSONTrue和TJSONFalse。
uses System.JSON;
var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
JSON.AddPair('真', TJSONTrue.Create);
JSON.AddPair('假', TJSONFalse.Create);
Memo1.Lines.Text := JSON.ToString; //=> {"真":true,"假":false}
JSON.Free;
序列需要用到TJSONArray。
uses System.JSON;
var
JSONArray: TJSONArray;
begin
JSONArray := TJSONArray.Create;
JSONArray.Add('张三');
JSONArray.Add('李四');
JSONArray.Add('王五');
Memo1.Lines.Text := JSONArray.ToString; //=> ["张三","李四","王五"]
JSONArray.Free;
如果要把一个序列加到一个JSON对象里面需要这样: JSONObject.AddPair(TJSONPair.Create('Data', LArr));
JSON解析的示例如下:
procedure TForm1.Btn1Click(Sender: TObject);
var
Items: TJSONObject;
ItemArry:TJSONArray;
I:Integer;
ItemValue:string;
begin
Items:=TJSONObject.ParseJSONValue('{"result":["abc","ccddee"]}') as TJSONObject ;
ItemArry:= Items.GetValue('result') as TJSONArray ;
for I := 0 to ItemArry.Count-1 do
begin
ItemValue:=ItemArry.Items[I].Value;
Mmo1.Lines.Add(ItemValue );
end;
end;
这里还有一篇可供参考的文章 http://blog.csdn.net/sunylat/article/details/41407945
Delphi中使用JSON遇到问题欢迎留言讨论。
PS:由于广告类的留言太多所以加了审核,不过我会定期看的。
还不快抢沙发