zoukankan      html  css  js  c++  java
  • DELPHI 解析 JSON

    JSON相对XML轻量了很多,考虑到以后WEBSERVICE可以通过JSON实现DELPHI的程序和WEBSERVICE进行交互,今天就想去看一下DELPHI如何解析JSON.

    比如:如何将:

    {"metaData":[{"a":"哇","b":"d"},{"a":"哇","b":"d"}],"success":true,"totalProperty":4}

    这个JOSN字符串用类来表示。

    网上查了一下,DELPHI JOSN,大都是在说用DELPHI开发JSON项目,这个不是我想好的,我只想要对于一个JSON的字符串,如何用DELPHI解析到类中。

    找到万一的博客中,有一篇讲如何在DELPHI中使用JSON

    http://www.cnblogs.com/del/archive/2008/08/06/1261583.html

    结果只讲了一半,没有继续说下去。

    貌似DELPHI2009的JSON不是很完善。

    http://www.json.org/json-zh.html里的连接,找到了对JSON支持的DELPHI单元,有三个:

  • Delphi Web Utils.
  • JSON Delphi Library.
  • JSON Toolkit.
  • 下了DELPHI WEB UTILS,发现这个对解析复杂的JSON的时候会出现错误。

    procedure TForm3.bbtn2Click(Sender: TObject);
    var
      a: TJSONObject;
      b: TStringStream;
    begin
      b := TStringStream.Create();
      b.LoadFromFile('a.txt');
      a := TJSONObject.create(b.DataString);
    end;

    在CREAGTE的时候对于复杂的JSON就出错误了。

    其实这个UNIT分装的挺好的,其使用方法和JAVA的JSONLIB(net.sf.json)很类似。可惜不能用。

    ----------------------------------------

    接着下了json delphi library

    var
      js,xs:TlkJSONobject;
      ws: TlkJSONstring;
      s: String;
      i: Integer;
      b: TStringStream;
    begin
      b := TStringStream.Create();
      b.LoadFromFile('a.txt');
      s := b.DataString;

      js := TlkJSON.ParseText(s) as TlkJSONobject;
      Memo1.Lines.Add('parent self-type name: ' + js.SelfTypeName);
      Memo1.Lines.Add(IntToStr(TlkJSONlist(js.Field['metaData'].Field['fields']).count));
      Memo1.Lines.Add(TlkJSONlist(js.Field['metaData'].Field['fields']).Child[1].field['name'].Value);

    运行正常。

    以后就用这个吧。

查看全文
  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/barryhong/p/1662074.html
  • Copyright © 2011-2022 走看看