我从哪里开始使用JSON?

时间:2014-06-15 14:41:30

标签: json delphi parsing

我对JSON完全不了解,但我希望能够从URL http://stokercloud.dk/dev/getdriftjson.php?mac=oz8hp读取一些数据,并能够将它们存储在数据库中。 但我不知道从哪里开始,所以我想我会在这里询问一些提示,也许还有一些我可能从中学到的样本的链接 我知道输出可能看起来很混乱,但我列出了每个项目的内容。

  • 该文件是来自pelletburner的运行时数据

3 个答案:

答案 0 :(得分:14)

JSON specification是第一页。标准非常简单,从这个页面很容易理解。

我找到了a wider tutorial, with illustrations and more resources。很高兴看到。

JSON explained

以下是此网页的结论:

  
      
  • JSON是一种开放的,基于文本的轻量级数据交换格式,指定为RFC4627,2005年来到开发人员世界,并且它是   人气迅速增加。
  •   
  • JSON使用Object和Array作为数据结构和字符串,number,true,false和null作为值。对象和数组可以嵌套   递归。
  •   
  • 大多数(如果不是全部)现代编程语言都可用于使用JSON。
  •   
  • NoSQL数据库是为了摆脱关系数据库的瓶颈,正在使用JSON来存储数据。
  •   
  • JSON使开发人员能够在XML和JSON之间进行选择,从而提高灵活性。
  •   
  • 除了NoSQL,AJAX,包管理以及API与Web应用程序的集成是使用JSON的主要领域   广泛。
  •   

恕我直言,JSON的主要观点是它包含文档或文档数组。数据类型少于Delphi(例如,没有官方日期/时间,只有一种数字类型)。它是一种交换格式,现在被广泛使用,而且从我自己的实验中,比人工和计算机方面的XML更容易使用。

在Delphi中,你有几个库,主要是:

关于效果,you can take a look at our blog article DBXJSON (以及Delphi的官方JSON单元)是迄今为止最慢的,有点难以使用。缺少一些方便访问JSON文档内容的方法。其他库更容易使用。 mORMot 附带的版本非常快, dwsJSON 也是如此。 SuperObject 比那些慢,特别是对于大量内容, XSuperObject 很慢(但是跨平台)。我们的 SynCrossPlatformJSON 单元也是跨平台的,非常快,并且具有基于变体的文档访问。

使用 mORMot 库的一些代码:

uses
  SynCrtSock,
  SynCommons;

procedure test;
var json: RawUTF8;
    jsondata: TDocVariantData;
    i: integer;
begin
  json := TWinHttp.Get('http://stokercloud.dk/dev/getdriftjson.php?mac=oz8hp');
  jsondata := DocVariantData(_json(json).jsondata)^;
  for i := 0 to jsondata.Count-1 do
    writeln(jsondata.Values[i]); // here all items are converted back to JSON and written
end;

答案 1 :(得分:1)

  1. 要学习JSON(JavaScript Object Notation),您需要阅读JSON on Wikipedia
  2. 要从url下载数据,您可以使用TIdHttp,它是Indy框架的Http客户端。
  3. 要解析JSON,我建议使用superobject。它包含demos目录中的很好的例子。

答案 2 :(得分:0)

JSON是一种交换表单,用于在需要向其发送数据的任何内容之间发送数据。它的简单性就是它的强度。

该文本是有效的javascript,因此可以被任何javascript编译器解释,但现在非常流行,几乎每种语言现在都内置了json解析器或作为库(请参阅http://json.org/向下滚动到底部)。

基本上JSON是一个非常简单的结构化文本。如果您使用Google JSON Library Delphi,您应该获得一些解决方案或任何其他您想要使用的语言。

相关问题