DELPHI 解析 JSON

摘要:
{“a”:“success”:procedureTForm3.bbtn2Click(发件人:TObject);=TStringStream.Create();xs:Integer;=TSStringStream.Create();=TlkJSON.ParseText asTlkJSON对象;Memo1.Lines.Add('parntself-typename:

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

    运行正常。

    以后就用这个吧。

    免责声明:文章转载自《DELPHI 解析 JSON》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

    上篇关于poi的导出(POI)mockjs,json-server一起搭建前端通用的数据模拟框架教程下篇

    宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

    相关文章

    NPOI读取Excel

    项目环境:Webform framework4.0 dll版本:NPOI2.0  dotnet2.0版本 这两天要做个excel导入的功能,想到以前用过NPOI,感觉很给力,今天写了个DEMO,写的时候还算顺利,毕竟以前用过,还是想记录下来,留着以后直接复制 把excel数据读取并拼接到DataTable中,为了使用SqlBulkCopy一次性拷贝到数据库...

    SAP HTTP调用其他系统接口

    1业务说明 ABAP系统通过HTTP方式调用其他系统发布的接口 2代码实现 2.1认证接口 根据访问的URL创建HTTP客户端 设置访问方式,并调用SEND和接收函数 有时需要专门验证用户名密码 获取返回的HTTP访问状态和状态描述,并关闭接口 其中定义的接收内表需要按照JSON结构来定义 2.2具体接口 当获取TOKEN成功之后,就可以...

    [WorldWind学习]8.Cache对象

    MainApplication的构造函数599行实例化了worldWindow的Cache属性。 // set Upper and Lower limits for Cache size control, in bytes long CacheUpperLimit = (long)Settings.CacheSizeMega...

    ASP.Net MVC C#画图 页面调用

    /////C# 后台代码 public FileContentResult PieChart()        {            TransactionStatisticsBLL bll = new TransactionStatisticsBLL();            TransactionStatistics_Query query =...

    Aspose Word模板使用总结

      原文链接:http://www.cnblogs.com/birchlee/archive/2013/05/23/3094632.html   1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc       注意:这里并不是输入"《”和“》”就可以了,而是必须在菜单的"插入→文档部件→...

    iTween研究院之学习笔记Move移动篇

             最近项目中需要加入一些模型移动的小动画,学习过程中发现了iTween这个类库。它主要的功能就是处理模型从起始点到结束点之间运动的轨迹。(移动,旋转,音频,路径,摄像机等)它是一个开源的项目并且完全免费,它们的官网在这里 http://itween.pixelplacement.com/index.php 打开网之后点击右上角Get iTw...