数据几乎是每个现代应用程序开发的基础。 没有数据,该应用程序大部分是静态的,可能无法执行很多操作。 上世纪90年代,XML是用于通过Internet传输数据的主要方法。
这是一种格式化数据的方法,该方法易于解释,理解并在不同语言之间具有强大的支持。
XML的思想是遵循标记格式,该格式决定了文档编码规则 。 随着开发人员构建用于解释和处理XML的API接口,广泛实施了它的流行性。
但是, XML存在其问题,例如易于冗长的语法 。
我们经常在界面设计领域(例如移动应用程序开发)以及需要对数据进行结构化以进行样式化(但不一定通过HTML进行结构化)的地方(例如RSS feed)看到XML 。
与XML相比, JSON仅设计用于数据和data 。 这就是为什么我们看到在诸如API之类的应用程序之间传输数据的领域中采用它的原因。 JSON在XML之上的受欢迎程度部分是由于它是纯数据,其格式也易于人读 。
Douglas Crockford在2000年代初将JSON设计为简单易用的设计。 尽管JSON与XML相比要年轻得多,但尽管在2013年才正式标准化,但它仍被API广泛使用和使用。
JSON本身是一种与语言无关的数据格式,它是对无状态通信协议需求的一种响应,而无需处理其他插件 。
随着网络对JavaScript的日益增长的支持,JSON被创建为JavaScript的子集。 这有助于在JSON和JavaScript之间形成牢固的关系,从而将XML推到了一边。
随着JSON接管网络,这引发了一个问题: XML仍然有意义吗?
仍在使用XML的地方
尽管JSON是现代应用程序开发中的主要内容,但XML存在于许多企业系统中,并且已经从用作数据传输格式而发展。
值得一提的是,尽管XML被用在数据层中,但并不是专门为存储和发送数据而创建的。 标记语言背后的想法是,它用于通过标签定义元素来构造文档。 XML在数据层中的兴起是由于其使用自定义标签的能力 。
现在,通常在诸如Android,JavaFX,UPF和Xmarin之类的空间中,将XML作为UI开发过程的一部分 。 除基于Microsoft的程序(如Word,Excel和Powerpoint)外,它还广泛用于Magneto。
作为一种标记语言,XML在显示和样式化数据时是与平台无关的完美选择 。 它已经准备好,并且可以根据使用它的程序和应用程序的需求进行预格式化。 标记语言的要点在于,它提供了数据结构,并能够创建挂钩和其他语言可以使用的接口。
关于JSON的真相
关于XML的事情是,它以双重身份使用-一种用作数据结构和传输,另一种用作通过自定义标签灵活的格式化方法。
相比之下,JSON是一维的,因为它只有一个工作和一个工作。 JSON的存在是通过其标准化数据结构的能力来定义的,这种方式灵活但足够僵化以创建易于理解的模式 。
JSON的目的是以较不冗长的可解析方式传输数据,从而提高传输速度 。 数据以地图格式构造,这意味着密钥对值可创建高水平的可预测性。
经过优化的数据及其与JavaScript的强大关联,使得该语言成为服务器和浏览器之间的首选数据传递方法。
但是与XML不同, JSON在混合内容方面表现不佳,并且在不创建其他密钥对值的情况下将元数据添加到JSON是不可能的 。
XML的优缺点
XML至今仍然存在,主要是因为它与平台无关。 它支持Unicode,通常用作数据表示工作流的一部分 。
这就是为什么XML仍然对学习有用的原因,尤其是在需要进行UI开发的空间中 。 例如,本机Android开发在很大程度上依赖XML来格式化UI元素。 作为一种没有预定义标签的标记语言,XML被用于GUI(图形用户界面)不是浏览器的空间。
XML的冗长性会产生高昂的数据传输成本,尤其是在数据量很大的情况下。 与其他可用的数据格式相比,它的人类可读性较低,并且不以易于处理和理解的方式支持数组。
当用于数据层时,由于size,XML最终可能会不必要地变得昂贵 。 其优化取决于开发人员设计结构,而不是其正常模式和结构固有的。
作为数据层,XML易于在结构上进行冗余,并且非常适合UI而非数据层空间中的用途。
JSON的优缺点
JSON的主要优势在于,它使人类更容易在精神上解析它,从而使其更易于使用 。 与XML相比,它的简洁性质使其在物理上轻巧。 结果, 网络传输对于读写来说要快得多 。
在JavaScript方面,JSON得到了广泛的支持和期望 。 在某种程度上,JSON被视为JavaScript的本机。 它附带了框架和库设置,并广泛用作包,规则和任何其他要求的“映射”。
JSON的主要缺点是很难描述您要呈现的数据。 这是因为JSON适用于严格的密钥对值结构 。 相反,XML接受元数据以帮助根据需要进一步标记和描述数据。
但是, JSON确实区分了字符串,数字和布尔值,而XML将数据表示为纯文本 。 您可以通过XML Schema为XML中的值定义数据类型,但是对于许多初学者来说,这通常是难以企及的。 JSON的简单结构和轻量级的性质使其比XML更易于访问。
JSON的另一个主要缺点是,它缺乏格式验证,这意味着可以将不正确的数据结构传递到您的API中 。 像XML一样,不会自动检测到已失效的结构或引发错误。
尽管如此,许多现代API都在数据结构采用JSON的前提下运行。 由于JSON的普及和易用性,很少有基于XML的新API。 部分原因是主要的前端技术转向支持基于JavaScript的应用程序。 因此,由于具有轻松使用和处理数据的能力,JSON已成为API的默认设置。
最后的想法
JSON通常是基于Web的集成的首选,因为它易于被应用读取和使用。 尽管它起源于JavaScript,但是它已经得到了广泛的支持,并且依赖于XML的遗留系统也可以工作。 JSON也已成为许多表格数据库的标准数据格式,将JSON转换为默认格式并将其放在最前列。
但是, 仅由于JSON由于与JavaScript的关联以及跨不同语言和平台的广泛支持而成为当前最受关注的话题,所以您不应完全无视XML 。
XML的优点是它在应用程序开发生态系统中占有一席之地,并且不会逐渐消失。 数据不仅仅是将数据从一个空间移动到另一个空间,还具有更多的功能。 XML做JSON不能做的事情–可以修饰它并允许Java和C ++之类的语言为可能不基于Web的应用程序创建接口 。
本机移动应用程序开发通常依赖XML来创建数据的UI和支架。 通过元标记并将附加信息附加到XML,它还使数据不仅具有一维功能,而且由于密钥对值结构,JSON无法做到这一点。
最终,根据情况选择一个,这取决于您所使用的框架和库 。 在大多数情况下,对于基于Web的应用程序,JSON是必经之路。 对于在JSON兴起之前创建的旧平台,使用XML进行交互可能会更容易。