服务器端JSON通信和序列化的好处是什么?

服务器端JSON通信和序列化的好处是什么?,json,xml,serialization,data-formats,Json,Xml,Serialization,Data Formats,我越来越多地看到JSON被用于: 在服务器端进程之间通信 序列化和存储数据 在这些情况下,使用JSON而不是XML有什么好处 JSON最初的好处是它直接序列化到Javascript对象中,从而在使用Javascript客户端时简化了Ajax编程(服务器端Javascript编程显然也会受益,尽管它相对少见) 但是XML有着悠久的历史,有一个支持技术和协议的生态系统(XSL、XSLT、XInclude、XQuery、XPath、XML模式、序列化支持等)。为什么JSON会渗透到非Javascrip

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

  • 在服务器端进程之间通信
  • 序列化和存储数据
  • 在这些情况下,使用JSON而不是XML有什么好处

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

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

    在不使用Javascript的序列化和通信环境中,当我选择XML而不是JSON时,我似乎正逆着一个不断增长的趋势前进。我错过了什么

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

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

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

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

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

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


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

    基于编辑和注释,例如:

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

    以及:

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

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

    不管是好是坏,使用动态语言进行web开发的人似乎有一种潜在的态度,即所有Java/.Net内容都太“重”,因此对他们来说,拥有不需要所有工具的东西实际上更吸引人;只需看一眼,就能更容易理解;可以更容易地编写解析器;你可以输出一个字符串,而不需要学习其他系统


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

    基于您的编辑和评论,例如:

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

    以及:

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

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

    不管是好是坏,使用动态语言进行web开发的人似乎有一种潜在的态度,即所有Java/.Net内容都太“重”,因此对他们来说,拥有不需要所有工具的东西实际上更吸引人;只需看一眼,就能更容易理解;可以更容易地编写解析器;你可以输出一个字符串,而不需要学习其他系统


    我猜,JSON在面向web的系统中的流行程度在动态语言中变得如此之高,以至于.Net/Java生态系统不得不加入进来,以便与较新的基于web的系统进行互操作。

    这个问题可能与,其中讨论了JSON与XML在各种语言中的性能这里还有更多的讨论(使用基准数据):Java很容易在网页中查看,而且更安全,因为连接可以使用代理和证书。Java可以运行可能包含病毒的脚本,而xml没有病毒。@jdweng Java与xml或JSON完全无关。A.