SuperObject使用手記

最近91eHR項目須要用到 JSon 數據打包,根據不少人推薦,下了LkJSON,編寫了個Demo後發現LKJSON對Unicode即中文支持很糟糕,修改其代碼讓它支持中文,工做量仍是不小,找了資料,發現SuperObject第三方控件包,試用了下並編寫了個DEMO,發現仍是蠻強大。廢話少說,看看下面的代碼就知道其強大:
一、JSON原始數據
{
  "name": "張三", /* 註釋 */
  "age": 33,
  "sex": true,
  "weight": 123.456,
  "tel": ["86-1111111", "86-2222222"],
  "addresses":{"address":"A省B市", "pc":"100001"},
  "children": [
    {
      "name": "張繼",
      "age": "22",
      "sex": true
    },
    {
      "name": "張承",
      "age": "11",
      "sex": false
    }
  ]
}

二、獲取某個域內容,好比名稱,代碼以下:
var
  jo: ISuperObject;
begin
  jo := TSuperObject.ParseString(PWideChar(mmo.Text),false);
  ShowMessage('name:'+jo['name'].AsString);
  //也能夠採用如下方式實現
  //jo := SO(PWideChar(mmo.Text));
  //ShowMessage('message:'+jo['message'].AsString);
end;

三、獲取嵌套對象,好比地址和郵編
var
  jo: ISuperObject;
begin
  jo := TSuperObject.ParseString(PWideChar(mmo.Text),false);
  ShowMessage('地址:'+jo['addresses.address'].AsString+',郵編:'+jo['addresses.pc'].AsString);
end;

四、解析子記錄
var
  i: integer;
  jo: ISuperObject;
  ja: TSuperArray;
begin
  jo := TSuperObject.ParseString(PWideChar(mmo.Text),false);
  ShowMessage('記錄:'+jo['children'].AsString);

  ja := jo['children'].AsArray;
  for i:=0 to ja.Length-1 do
  ShowMessage(ja['name'].AsString);
end;ide

相關文章
相關標籤/搜索