我应该使用 JSON 还是 AJAX 作为响应数据?

Posted

技术标签:

【中文标题】我应该使用 JSON 还是 AJAX 作为响应数据?【英文标题】:Should I use JSON or AJAX for response data? 【发布时间】:2010-11-03 15:09:06 【问题描述】:

为什么是 JSON?今天做了一些测试,无论是JSON,还是普通的AJAX请求的请求时间都是一样的。在“正常请求”中,我返回了完整的 text+html 标签,在 JSON 请求中,逻辑上我返回了“json 返回类型”,并使用客户端 javascript 创建了 HTML。

我不明白,为什么大型网站(Google Reader 等)甚至小型网站都使用 JSON?还是我不明白什么时候应该使用 JSON?

【问题讨论】:

见When to use Ajax vs Json for Javascript events? 几乎相似。 【参考方案1】:

你可能有点困惑。

JSON 和 AJAX 不是非此即彼的选择。

JSON 和 XML 是一种选择。

JSON 和 AJAX 是不同的,并且在很大程度上是不相关的,虽然 AJAX 经常使用 JSON,但它可以很容易地使用 XML、HTML 或纯文本。

或者您指的是 AJAX (XML) 中的 X?如果是这样,JSON 的参数基本上是:

JSON 的负载比同等的 XML 更小;和 JSON 在 Javascript 中更容易处理(比较评估 JSON 对象与遍历 XML 片段)。

除此之外,这主要是个人喜好。

【讨论】:

另外,如果你使用的是firebug,json也可以帮助你调试,因为你可以直接读取来回发送的数据【参考方案2】:

JSON 只是一种数据交换格式。它描述了数据在传输过程中以何种方式表示。不能用 JSON 代替 Ajax。

Ajax 代表异步 JavaScript 和 XML,但在使用 JSON 时,您可以说您使用的是 AJAJ(异步 JavaScript 和 JSON)。

也许您正在考虑 jQuery 方法 $.getJSON()$.get()

不同之处在于 $.getJSON() 自动假定它是 JSON 数据,而 $.get() 只会以纯文本形式获取数据。

使用$.getJSON() 时,您还可以在域之间获取数据。

【讨论】:

我喜欢认为 AJAX 代表异步 JavaScript 和 X,其中 X 是某种结束格式。 -1:JSON 根本没有描述以任何方式传输数据的方式。 JSON 描述了数据在传输时的表示方式。 (另外,关于“AJAJ”的部分完全是在转移注意力,因为在现实的历史上从来没有人使用过这个词。) @Tomalak 你是绝对正确的,两年后发现很好:) 关于“AJAJ”,在使用 json 讨论异步 javascript 时,至少有 18 个问题确实包含“AJAJ”一词。 @alexn:这几乎不是现实。我可以看到三个与“AJAJ”相关的 Google 搜索结果,其中之一是 acronymfinder.com。我根本不使用“AJA*”;省事。无论如何,downvote 变成 upvote :)

以上是关于我应该使用 JSON 还是 AJAX 作为响应数据?的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 响应:数据(JSON、XML)还是 HTML 片段? [关闭]

在 JSP 中使用 Ajax 响应

Ajax json 数据格式

Ajax json 数据格式

Ajax json 数据格式

Ruby on Rails,json vs js ajax 响应