本文整理自网络,侵删。
unit Unit1;
interface
uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls;
type TForm1 = class(TForm) Memo2: TMemo; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.fmx}
uses System.JSON;
procedure TForm1.Button1Click(Sender: TObject);//解析JSONbegin var jo: TJSONObject := TJSONObject.ParseJSONValue('{"name":"张三", "other":["中国","程序员"]}') as TJSONObject; //从字符串生成JSON Memo2.Lines.Add('遍历JSON数据:'); Memo2.Lines.Add('JSON数据数量:' + IntToStr(jo.Count)); var tmp: string; for var i: integer := 0 to jo.Count - 1 do //1,遍历JSON数据 tmp := tmp + jo.Get(i).ToString; Memo2.Lines.Add(tmp); Memo2.Lines.Add(''); Memo2.Lines.Add('按元素解析JSON数据:'); //2,按元素解析JSON数据 tmp := 'name = ' + jo.Values['name'].ToString; Memo2.Lines.Add(tmp); var ja: TJSONArray := TJSONArray(jo.GetValue('other')); // json数组 tmp := 'other = ' + jo.GetValue('other').ToString + #13#10; // 得到JSON数组字符串 for var i: integer := 0 to ja.Size - 1 do // 循环取得JSON数组中每个元素 tmp := tmp + IntToStr(i + 1) + ' : ' + ja.Items[i].Value + #13#10; Memo2.Lines.Add(tmp); jo.Free;end;
procedure TForm1.Button2Click(Sender: TObject);//生成JSONbegin var jo: TJSONObject := TJSONObject.Create; jo.AddPair('name','张三'); // var ja: TJSONArray := TJSONObject.ParseJSONValue('["中国","程序员"]') as TJSONArray; var ja: TJSONArray := TJSONArray.Create; ja.Add('中国'); ja.Add('程序员'); jo.AddPair('other', ja); Memo2.Lines.Add(jo.ToString); //{"name":"张三","other":["中国","程序员"]} Memo2.Lines.Add(jo.ToJSON); //{"name":"\u5F20\u4E09","other":["\u4E2D\u56FD","\u7A0B\u5E8F\u5458"]} jo.Free;end;
end.
相关阅读 >>
Delphi 获取适合微信使用的当前日期,以int64表示,是当前时间和1970-01-01 00:00:00之间的秒差
Delphi 递归实现从m 个集合中 任取一个元素 生成组合
更多相关阅读请进入《Delphi》频道 >>