zoukankan      html  css  js  c++  java
  • SuperObject使用手记

    最近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;

  • 相关阅读:
    Ubuntu12.04 亮度调节和保存
    算法
    Python一些常见问题的解决方法
    数据结构
    C# 运行时编译代码并执行 【转】
    C# 动态添加属性 非原创 有修改
    30天学通Visual C++项目案例开发 下載
    .NET常用Request获取信息
    获取一个目录下所有的文件,包括子目录的
    C++入门到精通_全集下载
  • 原文地址:https://www.cnblogs.com/cpprun/p/4788271.html
Copyright © 2011-2022 走看看