json和ajax之间的区别?何时应该使用什么?

时间:2010-09-30 23:52:08

标签: php javascript jquery ajax json

你好我在json和ajax之间完全混淆了。什么时候会用到什么。我在服务器端使用PHP。我经常使用ajax异步接收数据,而不调用页面加载。我使用php的json函数将数据传递给javascript。但我刚刚开始学习jQuery,我完全困惑何时使用函数ajax以及何时使用json。有人可以帮我解决这个问题,谢谢。

8 个答案:

答案 0 :(得分:16)

JSON( J ava S crpt O bject N otation)和AJAX( A < / strong>同步 J avaScript a nd X ML)是两个完全不同的概念,一个用作数据的存储介质(JSON)而另一个用于从HTTP或FTP Web服务器(AJAX)检索数据,该服务器不依赖于要传输的数据的格式,它可以是文本,二进制,XML或JSON,这几乎是一切。< / p>

您可以将AJAX与JSON一起使用,方法是使用AJAX从Web服务器检索JSON格式的一些数据,然后使用JavaScript将JSON数据解析为脚本引擎可访问的表单。

答案 1 :(得分:14)

我假设您指的是jQuery .getJSON() 方法。

此方法只是将jQuery .ajax() 方法与JSON数据一起使用的简便方法。 .getJSON() 相当于:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

因此,如果您要从服务器检索JSON数据,则可以使用 .getJSON() 。数据将自动使用 jQuery.parseJSON() 方法进行解析。


更一般地说, AJAX 是一种从服务器异步检索信息的方法。 JSON 是一种格式化数据的方式....但我猜你已经知道了这一点,并且你特别询问我提到的两种jQuery方法。

答案 2 :(得分:5)

JSON只是一件事:它是一种交换数据的格式。当您以JSON格式编码数据时,可以轻松地解码。假设您要编码您的个人信息:

  

我的名字是胡安,我31岁

您将以JSON格式对其进行编码:

{'name':'Juan', 'age':31}

该字符串很小,易于传输,易于解释;它也是标准化的,因此任何拥有兼容JSON解码器的人都可以从该字符串中获取nameage。许多Web服务都使用JSON来交换数据。

现在,AJAX不是语言,产品,软件,规范或标准。 AJAX只是做事的方式。 AJAX没有定义。相反,AJAX是一种技术集合,其中Internet资源的给定视图(例如,特定Web页面)可以异步地与服务器交互。例如,我在文本框中键入此消息,然后我将点击POST YOUR ANSWER。服务器将收到此文本,并将其放在网站中,但它不会重新加载页面(只有实际放置我的答案的相关部分)。

AJAX很重要,因为它提供了类似于桌面应用程序的外观(如果每次单击桌面应用程序中的内容,应用程序将关闭然后再次打开,那会很奇怪吗?)

AJAX代表异步Javascript和XML ,因为使用了这两个东西,但如果开发了其他客户端脚本语言,这可能会改变。

因此,JSON是一个很好的指定(数据格式)而AJAX不是(它是一种做事的方式,但没有明确的定义)。它们是无关的,但它们都广泛用于互联网服务,所以你会看到它们的名字经常出现。

答案 3 :(得分:2)

AJAX是一种访问方法,类似于简单的Web请求。但是,AJAX是异步的。

JSON是访问返回的数据的编码...它在HTML或XML的相同级别上。

AJAX请求可以返回任何格式的数据,并且根据手头的任务,JSON或HTML可能是正确的数据格式。

例如,您的应用程序可以请求一个全新的html部分,并使用它来替换页面上已存在的内容。 jQuery.load()为此。也许您的应用程序只需要服务器中的一些数据,您可以使用jQuery.getJSON()进行此操作,并使用JSON对数据进行编码。关于JSON的好处,解析它几乎不费力,特别是在jQuery的帮助下。

答案 4 :(得分:2)

您可以将AJAX (异步JavaScript和XML)视为一种非常快速的邮政服务(这有点紧张,AJAX意味着按需,但我要忍受)。它发送信息,但不知道它究竟发送了什么。

您可以将JSON (JavaScript Object Notation)视为一封信。它包含用户提供和定义的信息,这些信息采用服务器和客户端语言可以理解的通用格式(通常是ASPPHPPerlRuby中的服务器, JavaScript)中的客户端浏览器。

然而,正如邮寄的邮件一样,这封信并不是唯一可以发送的东西。箱子,管子和其他格式可用于邮资。这映射回JSON是许多信息格式之一。 XMLHTMLPlain TextBinary (Images Etc)以及您可以想到的任何专有格式都可以由AJAX发送到服务器并返回。

这些粗略的比喻描述了每个人的目的。有关技术细节,您需要实际调查实现。 MooTools有一个包装器,可以轻松使用AJAX message passing,大多数其他JavaScript框架也可以。 JQuery是另一个(更受欢迎的)框架,它还提供了similar features

JSON本身很有用,因为它直接映射到JavaScript的对象表示法,所以它特别方便存储和传递信息。其他语言有解析器以这种格式提取和组合数据。 / p>

答案 5 :(得分:1)

Ajax是一种使用JavaScript进行异步调用以在客户端和服务器之间来回传输数据的概念。它没有定义传输的数据以及如何编码。

这就是JSON的用武之地,JSON是一种用于通过以非常特定的方式对内容进行编码来描述值和对象的工具。

答案 6 :(得分:0)

AJAX用于从服务器检索数据,可以是JSON,xML或其他格式。

答案 7 :(得分:0)

JSON:JavaScript Object Notation,它是:

  • 存储和交换数据的语法。
  • 文本,用JavaScript对象表示法编写。

AJAX是异步JavaScript和XML,不是一种编程语言,您可以:

  • 更新网页而不重新加载页面;
  • 在页面加载后从服务器请求数据;
  • 在页面加载后从服务器接收数据;
  • 将数据发送到服务器 - 在后台。

通过组合,您可以向服务器发送AJAX请求并以JSON格式返回。