我对JSON完全不了解,但我希望能够从URL http://stokercloud.dk/dev/getdriftjson.php?mac=oz8hp读取一些数据,并能够将它们存储在数据库中。 但我不知道从哪里开始,所以我想我会在这里询问一些提示,也许还有一些我可能从中学到的样本的链接 我知道输出可能看起来很混乱,但我列出了每个项目的内容。
答案 0 :(得分:14)
JSON specification是第一页。标准非常简单,从这个页面很容易理解。
我找到了a wider tutorial, with illustrations and more resources。很高兴看到。
以下是此网页的结论:
- 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)
TIdHttp
,它是Indy框架的Http客户端。demos
目录中的很好的例子。答案 2 :(得分:0)
JSON是一种交换表单,用于在需要向其发送数据的任何内容之间发送数据。它的简单性就是它的强度。
该文本是有效的javascript,因此可以被任何javascript编译器解释,但现在非常流行,几乎每种语言现在都内置了json解析器或作为库(请参阅http://json.org/向下滚动到底部)。
基本上JSON是一个非常简单的结构化文本。如果您使用Google JSON Library Delphi,您应该获得一些解决方案或任何其他您想要使用的语言。