1

我越来越多地看到 JSON 被用于:

  1. 在服务器端进程之间进行通信。
  2. 序列化和存储数据。

在这些情况下使用 JSON 而不是 XML 有什么好处?

JSON 最初的好处是它直接序列化为 Javascript 对象,从而在使用 Javascript 客户端时简化了 Ajax 编程(服务器端 Javascript 编程显然也会受益,尽管这种情况相对较少)。

但是 XML 有着悠久的历史,以及支持技术和协议(XSL、XSLT、XInclude、XQuery、XPath、XML Schema、序列化支持等)的生态系统。为什么 JSON 会渗透到非 Javascript 世界(和数据序列化),它似乎只是在复制 XML 在历史上所扮演的角色,但却没有 XML 几十年来开发的所有支持技术和工作?

当我在不以任何方式使用 Javascript 的序列化和通信情况中选择 XML 而不是 JSON 时,我似乎在逆向增长趋势。我错过了什么?

编辑:我的问题不仅仅是关于解析速度(尽管这可能是一个因素)。我的问题更多是关于在 JSON 中缺乏支持技术和协议的问题,这些技术和协议在 XML 中已经存在多年,以及为什么技术社区觉得有必要重新发明这个特殊的轮子。

4

2 回答 2

0

根据您的编辑和评论,例如:

我的问题更多是关于在 JSON 中缺乏支持技术和协议的问题,这些技术和协议在 XML 中已经存在多年,以及为什么技术社区觉得有必要重新发明这个特殊的轮子。

和:

我很好奇是否值得引入一个完全不同的具有大量重叠的协议,并为了如此小的利益而分裂开发社区。

...您似乎是从 .Net/Java 的角度来看的(“编译代码”和“IDE”之类的东西很常见)。但是因为 JSON 来自 javascript 世界,我相信它的流行源于它对不在 .Net/Java 生态系统中的人的吸引力(因此人们使用动态语言——ruby、python、php 等)。

不管是好是坏,使用动态语言进行 Web 开发的人似乎有一种潜在的态度,即所有 Java/.Net 的东西都太“重量级”了,所以对他们来说,拥有一些没有的东西实际上更有吸引力。不需要所有工具;看一眼就更容易理解;哪些解析器更容易编写;并且您可以只输出一个字符串,而无需学习一堆其他系统。

我猜想 JSON 在面向 Web 的系统中的流行度在动态语言中变得如此之大,以至于 .Net/Java 生态系统别无选择,只能加入以与较新的基于 Web 的系统互操作。

于 2015-09-21T18:05:32.013 回答
0

我想说的是,即使您没有像XML那样多的工具,使用JSON通常也更简单。此外, JSON通常就足够了,您不需要XSLT之类的东西来存储配置或交换一些分层数据。所以实际上它比XML更适合这个目的。

此外,您还有一些好处,例如更好的性能、更好的人类可读性、更少的数据等。

但是,在某些领域,XML当然比JSON更适合。例如使用XSLT生成文档。

于 2015-09-21T14:14:16.113 回答