码迷,mamicode.com
首页 > 其他好文 > 详细

SuperObject使用手记

时间:2015-09-07 12:33:02      阅读:575      评论:0      收藏:0      [点我收藏+]

标签:

最近91eHR项目需要用到 JSon 数据打包,根据很多人推荐,下了LkJSON,编写了个Demo后发现LKJSON对Unicode即中文支持很糟糕,修改其代码让它支持中文,工作量还是不小,找了资料,发现SuperObject第三方控件包,试用了下并编写了个DEMO,发现还是蛮强大。废话少说,看看下面的代码就知道其强大:
1、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
    }
  ]
}

2、获取某个域内容,比如名称,代码如下:
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;

3、获取嵌套对象,比如地址和邮编
var
  jo: ISuperObject;
begin
  jo := TSuperObject.ParseString(PWideChar(mmo.Text),false);
  ShowMessage(‘地址:‘+jo[‘addresses.address‘].AsString+‘,邮编:‘+jo[‘addresses.pc‘].AsString);
end;

4、解析子记录
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;

SuperObject使用手记

标签:

原文地址:http://www.cnblogs.com/wuyujie/p/4788271.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!