delphi json生成和解析

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;

  

  

原文地址:https://www.cnblogs.com/hnxxcxg/p/12605909.html