我从哪里开始使用JSON?

OZ8*_*8HP -1 delphi parsing json

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

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

Arn*_*hez 14

JSON规范是阅读的第一页.标准很简单,从这个页面很容易理解.

我找到了更广泛的教程,插图和更多资源.很高兴见到.

JSON解释道

以下是此网页的结论:

  • 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中,您有几个库,主要是:

关于性能,您可以查看我们的博客文章.DBXJSON(以及Delphi的官方JSON单元)是目前最慢的,有点难以使用.缺少一些方便访问JSON文档内容的方法.其他库更容易使用.与mwsot一起提供的版本非常快,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;
Run Code Online (Sandbox Code Playgroud)