XML和JSON的比较
XML和JSON的比较
XML与JSON都可以用来描述或者存储数据,两者都有各自的优点,使用场景取决于需求。
描述
XML
可扩展标记语言Extensible Markup Language,是一种用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型、存储数据等,是一种允许用户对自己的标记语言进行定义的源语言,并提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 XML基于标准通用标记语言SGML与超文本标记语言HTML发展而来,使用DTD文档类型定义Document Type Definition来组织数据,格式统一,跨平台和语言,目前的版本标准为XML 1.0。
JSON
JSON即JavaScript Object Notation,是一种轻量级的数据交换格式,其是ECMAScript规范的一个子集,采用兼容性很高的、完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为比较理想的数据交换语言,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
比较
可读性方面
可读性方面,JSON与XML都作为标准的规范,可读性都比较不错,对于可读性的比较其实还是应该取决于应用场景,对于将完整的XML映射为JSON格式的话,XML的可读性更好一些,对于单纯的数据描述而言,其可读性不相上下。
<?xml version="1.0" encoding="utf-8" ?>
<block name="show" >
<content>Hello World</content>
</block>
{
tag: "block",
name: "show",
children:[
{
tag: "content",
children:[
"Hello World"
]
}
]
}
可扩展性方面
XML与JSON都有很好的扩展性,没有什么是XML能扩展而JSON不能的,同样也没有什么是JOSN能扩展而XML不能的。
编码难度方面
无论是XML还是JSON都有丰富的编码工具,但是对于JSON来说即使不借助工具也能轻易地实现对应格式的编码,相反XML的编码不借助工具的话就比较难以实现了。
数据体积方面
XML格式的数据的冗余度是大于JSON格式的数据的,通常而言,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。
数据解析方面
无论是XML还是JSON都有丰富的解析工具,对于XML而言设计了两种解析方式:DOM和SAX,DOM方式就是将整个XML读入内存,全部解析;SAX方式是一种逐步解析的方法,不需要读入整个XML就可以对解析的内容逐步处理,SAX适合于大型文档的解析。JSON只提供整体解析方案,对于数据量较少的文档处理效果比较好。
数据交互方面
对于JSON格式的数据,很多语言都在标准库中提供了支持,直接调用库函数即可解析,特别是对于前端,JSON是ECMAScript规范的一个子集,与JavaScript的交互更加方便,在前端的应用更加广泛,对于XML格式的数据解析一般都需要借助第三方工具库实现。
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://www.cnblogs.com/SanMaoSpace/p/3139186.html
XML和JSON的比较的更多相关文章
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
- 【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据
有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这 ...
- C# XML转JSON,不引用第三方JSON.NET类库
应用场景:需要调用第三方接口(返回XML)数据,然后供自己多个系统使用(涉及跨域,使用JSONP) 代理:调用接口(把XML转换为JSONP解决跨域问题) B/S应用系统:调用代理返回的数据进行UI显 ...
- SQL2008使用json.net实现XML与JSON互转
借助CLR,首先实现字符串的互转,然后使用存储过程实现JSON2table public class JsonFunction { /// <summary> ...
- [Network] HTML、XML和JSON学习汇总
写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个 ...
- XML和JSON数据格式对比
概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...
- xml和json的区别
本文转自SanMaoSpace的博客 链接地址如下:http://www.cnblogs.com/SanMaoSpace/p/3139186.html 1.定义介绍 (1).XML定义扩展标记语言 ( ...
- C#中XML和json互相转换
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Xm ...
- 数据解析(XML和JSON数据结构)
一 解析 二 XML数据结构 三 JSON 数据结构 一 解析 1 定义: 从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照 ...
- ASP.NET中的XML和JSON
一.DOM简介 1.XML 定义:XML是一种跨语言.跨平台的数据储存格式 2.什么是DOM DOM(document object model)文档对象模型:是一种允许程序或脚本动态的访问更新文档内 ...
随机推荐
- 【ThreadX-NetX Duo】Azure RTOS NetX Duo概述
Azure RTOS NetX Duo嵌入式TCP / IP网络堆栈是Microsoft高级的工业级双IPv4和IPv6 TCP / IP网络堆栈,专门为深度嵌入式,实时和IoT应用程序设计.NetX ...
- C++静态库与动态库执行过程深入
静态库与动态库 静态库 基本使用 静态库是将一组完整的功能,如一个提供了完整运算的计算器,进行封装为一个.a或.lib文件. 使用时仅需要在使用处include这个静态库的头文件.而后在编译时添加-L ...
- ONVIF网络摄像头(IPC)客户端开发—ONVIF介绍
1.前言: 网上已经有很多关于ONVIF开发的资料,这里概括介绍一下ONVIF协议以及介绍一下我自己在开发ONVIF网络摄像头的一些流程和经验,做个开发记录和经验总结,以备将来查看,也可供他人参考 ...
- [转帖]《Linux性能优化实战》笔记(25)—— 总结:Linux 性能工具速查
一. 性能工具速查 在梳理性能工具之前,首先给你提一个问题,那就是,在什么情况下,我们才需要去查找.挑选性能工具呢? 其实在我看来,只有当你想了解某个性能指标,却不知道该怎么办的时候,才会想到,&qu ...
- Oracle 核心列信息查看与处理
Oracle 核心列信息查看与处理 背景 最近想对数据库表进行跨数据之间的比照 因为有一些自增列或者是时间戳的列不需要进行对比 后者是对比容易导致失真. 所以就准备选用其他方式进行一下处理. 本文主要 ...
- SQLSERVER2008R2 本地客户端无法连接的问题
sqlserver 数据库无法连接问题. 1. 问题现象与简单分析 今天同事找我说一个 SQLSERVER2008R2的测试环境无法连接了. 提示信息为: 当时猜测是 数据库的 配置出问题了. 去查看 ...
- uni-app三目运算 uni-app监听属性
三目运算 <text>{{mag>10 ? '优秀' : ""}}</text> 三目运算的高级用法 大于1000用kg表示 小于1000,用g表示 ...
- vue中父传子props的使用
第一种 传递一个数组 props:["cont"] 第二种 传递一个对象 props:{ uploadOption:{ type:Object, 参数类型必须是一个对象 requi ...
- Leetcode 92题反转链表 II(Reverse Linked List II) Java语言求解
前言 反转链表可以先看我这篇文章: Leetcode 206题 反转链表(Reverse Linked List)Java语言求解 题目链接 https://leetcode-cn.com/probl ...
- 搭建mongo的replica set
搭建mongo的replica set 前言 安装 构建副本集 加入认证 备份数据 备份数据到本地 数据恢复 搭建mongo的replica set 前言 准备三台机器,相互可以访问的.处理思路,先构 ...