delphi json生成和解析
使用DELPHI 自带的JSON类。
uses System.JSON; procedure TForm1.Button1Click(Sender: TObject); //解析JSON begin 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); //生成JSON begin 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":"u5F20u4E09","other":["u4E2Du56FD","u7A0Bu5E8Fu5458"]} jo.Free; end;