• 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;

  • 相关阅读:
    HDU-2602-Bone Collector
    HDU-1171-Big Event in HDU
    javascript概要
    核桃的数量
    P3372 【模板】线段树 1
    P3373 【模板】线段树 2
    拿糖果
    第二点五个不高兴的小明
    树的直径
    1240. 完全二叉树的权值
  • 原文地址:https://www.cnblogs.com/cpprun/p/4788271.html
Copyright © 2020-2023  润新知