当前位置: 首页 > news >正文

XML与JSON的区别

定义

1.XML的定义

扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

2.JSON的定义

JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。

区别

1.编码方面的区别

JSON的编码更为清晰且冗余更少些,而XML比较适合于标记文档。JSON网站提供了对JSON语法的严格描述,只是描述较简短。JSON更适于进行数据交换处理。

2.编码可读性之间的区别

XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读。

 

XML的优缺点

优点:

1.格式统一,符合标准
2.容易与其他系统进行远程交互,数据共享比较方便
3.调用将 XML 用作传输的现有服务。
4.使用 XSLT 可以动态转换 XML。这是企业服务总线 (ESB) 方案中的理想功能。

缺点:

1. XML文件格式文件庞大,格式复杂,传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML,不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间

 

JSON的优缺点

 

优点:

1. 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小,浏览器解析快
2. 易于解析这种语言,客户端JavaScript可以简单的通过eval()进行JSON数据的读取
3. 构造友好,支持多种语言,包括ActionScript, C,C#,ColdFusion,Java,JavaScript,Per,PHP,Python,Ruby等语言服务器端语言,便于服务器端的解析
4. 在PHP世界,已经有PHP-JSON和JSON-PHP出现了,便于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能够直接生JSON格式,便于客户端的访问提取
5. 因为JSON格式能够直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护
6.相当稳定。JSON 的附加内容将成为超集

缺点:

1. 没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性
2. JSON格式目前在Web Service中推广还属于初级阶段

转载于:https://www.cnblogs.com/13070315n/p/5376996.html

相关文章:

  • Bootstrap学习笔记(五)-----按钮
  • vue2.0项目引入element-ui
  • CODEVS 3500
  • bzoj 1593: [Usaco2008 Feb]Hotel 旅馆
  • Struts2 返回Json
  • centos6.5 iptables结合ipset批量屏蔽ip
  • Android NDK开发, 为App增加一个NDK模块
  • Cloudera与MongoDB共赴大数据“爱河”
  • shell三剑客之sed命令使用详解
  • CloudCC:如何用CRM更快更多抓取客源?
  • iOS学习路线
  • 野心勃勃的NoSQL新贵 MongoDB应用实战(1)
  • Palo Alto Networks的下一代安全方法论
  • 经典算法题每日演练——第二题 五家共井
  • 利用接口给任意对象进行排序
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [译]前端离线指南(上)
  • 《Java编程思想》读书笔记-对象导论
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • CSS 提示工具(Tooltip)
  • C语言笔记(第一章:C语言编程)
  • iOS小技巧之UIImagePickerController实现头像选择
  • Linux链接文件
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • MySQL QA
  • Promise面试题,控制异步流程
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • SQLServer插入数据
  • vue-router 实现分析
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前言-如何学习区块链
  • 设计模式(12)迭代器模式(讲解+应用)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 《码出高效》学习笔记与书中错误记录
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (6)添加vue-cookie
  • (8)STL算法之替换
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (Matlab)使用竞争神经网络实现数据聚类
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十六)一篇文章学会Java的常用API
  • (四)图像的%2线性拉伸
  • (一)VirtualBox安装增强功能
  • .bashrc在哪里,alias妙用
  • .Net IOC框架入门之一 Unity
  • .net 受管制代码