814123 2018-08-13 15:14 采纳率: 50%
浏览 1505
已采纳

delphi JSON解析,求代码?

求解写下面JSON的代码,感谢。
{"error_code":0,"reason":"success","result":{"state":3,"uptime":"2018-08-13 21:39:14","data":[{"time":"2018-08-11 17:53:09","remark":"快件已签收,签收人是【本人】"},

{"time":"2018-08-11 08:18:10","remark":"[上海营业部]的【余鸿】正在派件, 电话:15800644202"},{"time":"2018-08-11 08:14:10","remark":"快件已到达[上海营业部],上一站是[上海营业

部]"},{"time":"2018-08-11 02:56:59","remark":"快件已由[上海分拨中心]发往[上海营业部]"},{"time":"2018-08-10 12:50:06","remark":"快件已由[上海分拨中心]发往[上海营业部]"},

{"time":"2018-08-10 12:29:04","remark":"[嘉定六部]的【嘉定六部】正在派件, 电话:13650531758"},{"time":"2018-08-10 11:53:06","remark":"快件已到达[上海分拨中心]"},{"time":"2018

-08-10 08:08:35","remark":"快件已由[嘉定六部]发往[上海分拨中心]"},{"time":"2018-08-10 08:03:44","remark":"快件已到达[嘉定六部],上一站是[上海分拨中心]"},{"time":"2018-08-10

02:39:12","remark":"快件已由[上海分拨中心]发往[嘉定六部]"},{"time":"2018-08-09 23:25:28","remark":"快件已到达[上海分拨中心],上一站是[嘉定三部]"},{"time":"2018-08-09

19:22:57","remark":"快件已由[嘉定六部]发往[上海分拨中心]"},{"time":"2018-08-09 19:22:56","remark":"[嘉定六部]【嘉定六部】已收件"},{"time":"2018-08-09 18:42:54","remark":"[嘉定

六部]【华超】已收件"}],"information":{"no":518704351463,"sName":"UC","expName":"UC优速快递","url":"http://www.uc56.com","tel":"400-1111-119","img":"https://oss-

cn2.apistore.cn/exp/UC.png"}},"ordersign":"20180813215900272775252910"}

  • 写回答

3条回答 默认 最新

  • 堕落恶魔_Delphi 2018-08-14 01:06
    关注

    推荐用QJSON解析, 用法简单, 解析速度还快, 通过SVN下载: svn://www.qdac.cc/QDAC3

    对json内容结构部熟悉, 可以看接口文档, 或者找个json解析器看看, 比如 https://www.sojson.com/

    这是我写的解析demo

     implementation
    
    uses
      QJSON;
    
    {$R *.dfm}
    
    const
      JSONDATA = '{"error_code":0,"reason":"success","result":{"state":3,"uptime":"'
        + '2018-08-13 21:39:14","data":[{"time":"2018-08-11 17:53:09","remark":"快件'
        + '已签收,签收人是【本人】"},{"time":"2018-08-11 08:18:10","remark":"[上海'
        + '营业部]的【余鸿】正在派件, 电话:15800644202"},{"time":"2018-08-11 08:14:'
        + '10","remark":"快件已到达[上海营业部],上一站是[上海营业部]"},{"time":"2018'
        + '-08-11 02:56:59","remark":"快件已由[上海分拨中心]发往[上海营业部]"},{"tim'
        + 'e":"2018-08-10 12:50:06","remark":"快件已由[上海分拨中心]发往[上海营业部]'
        + '"},{"time":"2018-08-10 12:29:04","remark":"[嘉定六部]的【嘉定六部】正在派'
        + '件, 电话:13650531758"},{"time":"2018-08-10 11:53:06","remark":"快件已到'
        + '达[上海分拨中心]"},{"time":"2018-08-10 08:08:35","remark":"快件已由[嘉定'
        + '六部]发往[上海分拨中心]"},{"time":"2018-08-10 08:03:44","remark":"快件已'
        + '到达[嘉定六部],上一站是[上海分拨中心]"},{"time":"2018-08-1002:39:12","rem'
        + 'ark":"快件已由[上海分拨中心]发往[嘉定六部]"},{"time":"2018-08-09 23:25:28'
        + '","remark":"快件已到达[上海分拨中心],上一站是[嘉定三部]"},{"time":"2018-0'
        + '8-0919:22:57","remark":"快件已由[嘉定六部]发往[上海分拨中心]"},{"time":"2'
        + '018-08-09 19:22:56","remark":"[嘉定六部]【嘉定六部】已收件"},{"time":"201'
        + '8-08-09 18:42:54","remark":"[嘉定六部]【华超】已收件"}],"information":{"n'
        + 'o":518704351463,"sName":"UC","expName":"UC优速快递","url":"http://www.uc5'
        + '6.com","tel":"400-1111-119","img":"https://oss-cn2.apistore.cn/exp/UC.png'
        + '"}},"ordersign":"20180813215900272775252910"}';
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      nJ, nJInfo, nJR, nJRDS, nJRD: TQJson;
      nDataIndex: Integer;
    begin
      Memo1.Lines.Clear;
      nJ := TQJson.Create;
      try
        nJ.Parse(JSONDATA);
    
        Memo1.Lines.Add('ErrorCode: ' + nJ.ItemByName('error_code').AsString);
        Memo1.Lines.Add('reason:' + nJ.ItemByName('reason').AsString);
        Memo1.Lines.Add('ordersign:' + nJ.ItemByName('ordersign').AsString);
    
        Memo1.Lines.Add('');
        nJR := nJ.ItemByName('result');
        Memo1.Lines.Add('state:' + nJR.ItemByName('state').AsString);
        Memo1.Lines.Add('uptime:' + nJR.ItemByName('uptime').AsString);
    
        Memo1.Lines.Add('');
        nJInfo := nJR.ItemByName('information');
        Memo1.Lines.Add('no:' + nJInfo.ItemByName('no').AsString);
        Memo1.Lines.Add('sName:' + nJInfo.ItemByName('sName').AsString);
        Memo1.Lines.Add('expName:' + nJInfo.ItemByName('expName').AsString);
        Memo1.Lines.Add('url:' + nJInfo.ItemByName('url').AsString);
        Memo1.Lines.Add('tel:' + nJInfo.ItemByName('tel').AsString);
        Memo1.Lines.Add('img:' + nJInfo.ItemByName('img').AsString);
    
        Memo1.Lines.Add('');
        Memo1.Lines.Add('Data:');
        nJRDS := nJR.ItemByName('data');
        for nDataIndex := 0 to nJRDS.Count - 1 do
        begin
          nJRD := nJRDS.Items[nDataIndex];
          Memo1.Lines.Add(Format('--> time:%s  remark:%s',
            [nJRD.ItemByName('time').AsString,
            nJRD.ItemByName('remark').AsString]));
        end;
      finally
        nJ.Free;
      end;
    end;
    
    

    这是解析结果

    ErrorCode: 0
    reason:success
    ordersign:20180813215900272775252910

    state:3
    uptime:2018-08-13 21:39:14

    no:518704351463
    sName:UC
    expName:UC优速快递
    url:http://www.uc56.com
    tel:400-1111-119
    img:https://oss-cn2.apistore.cn/exp/UC.png

    Data:
    --> time:2018-08-11 17:53:09 remark:快件已签收,签收人是【本人】
    --> time:2018-08-11 08:18:10 remark:[上海营业部]的【余鸿】正在派件, 电话:15800644202
    --> time:2018-08-11 08:14:10 remark:快件已到达[上海营业部],上一站是[上海营业部]
    --> time:2018-08-11 02:56:59 remark:快件已由[上海分拨中心]发往[上海营业部]
    --> time:2018-08-10 12:50:06 remark:快件已由[上海分拨中心]发往[上海营业部]
    --> time:2018-08-10 12:29:04 remark:[嘉定六部]的【嘉定六部】正在派件, 电话:13650531758
    --> time:2018-08-10 11:53:06 remark:快件已到达[上海分拨中心]
    --> time:2018-08-10 08:08:35 remark:快件已由[嘉定六部]发往[上海分拨中心]
    --> time:2018-08-10 08:03:44 remark:快件已到达[嘉定六部],上一站是[上海分拨中心]
    --> time:2018-08-1002:39:12 remark:快件已由[上海分拨中心]发往[嘉定六部]
    --> time:2018-08-09 23:25:28 remark:快件已到达[上海分拨中心],上一站是[嘉定三部]
    --> time:2018-08-0919:22:57 remark:快件已由[嘉定六部]发往[上海分拨中心]
    --> time:2018-08-09 19:22:56 remark:[嘉定六部]【嘉定六部】已收件
    --> time:2018-08-09 18:42:54 remark:[嘉定六部]【华超】已收件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型