JSON 資料解析與建立

2 篇文章 / 0 new
最新文章
author
JSON 資料解析與建立
delphi 2010 內部開始支援 json 的資料格式, 其在 DBXJSON 內 TJSONObject 用來操作 JSON 資料格式
var
    Obj, RestoredObject, JSON: TJSONObject;
    arr: TJSONArray;
    Str: String;
    c:TBytes;
    ff : TStringList;
    js:TJSONString;
begin
  JSON := TJSONObject.Create;
  try
    JSON.AddPair('FirstName', TJSONString.Create('Daniele'));
    JSON.AddPair(TJSONPair.Create('LastName', 'Teti'));
    arr := TJSONArray.Create;
    arr.Add(123456789);
    arr.Add('peter.parker@bittime.it');
    arr.Add('Via Roma, 12');
    JSON.AddPair(TJSONPair.Create('Contacts', arr));
    Obj := TJSONObject.Create;
    Obj.AddPair(TJSONPair.Create('John', '中文'));
    JSON.AddPair('MyUndefinedPersonObject', Obj);
    TFile.WriteAllText('jsonfile.txt', JSON.ToString);
    //
    //c := TEncoding.Unicode.GetBytes('中'); //45,78 => 2d,4e => \u4e2d
    ff := TStringList.Create;
    ff.LoadFromFile('jj.json');//從檔案載入
    c := Bytesof(trim(ff.Text));//利用teim()去除最後的 #13#10 不然會無法解析
    RestoredObject := TJSONObject.ParseJSONValue(c, 0) as TJSONObject;
    if Assigned(RestoredObject) then
    begin
        Str := RestoredObject.ToString;//.Get(0).JsonValue.Value;
        Memo1.Lines.Add('Readed JSON object from file: ' + sLineBreak+ str);
    end;
  except
      Memo1.Lines.Add('Err');
  end;
  ff.Free;
  JSON.Free;
end;
另外其他支援 JSON 的 library 有 superobject, lkJSON 不過似乎都沒有在發表新版本了, 另網路上有說 lkJSON 在資料量大時會有錯誤, 真實如何自己尚未求證.
author
JSON 結構規則
發表回應前,請先登入
Free Web Hosting