Delphi XE自带JSON的使用方法总结

技术分享 2016-05-13 22980 次浏览 次点赞

算是自己备忘吧,也免得大家遇到同类问题再重复劳动,现将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:由于广告类的留言太多所以加了审核,不过我会定期看的。


本文由 王守红 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论