使用JSON替代XML
XML是一种很好的技术,但是目前的情况来看,XML被滥用了,SOAP是XML被滥用的一种典型,程序内部的表示使用XML也是滥用的一种典型。看到的一种情况,一个对象toString使用XML格式输出,导致日志文件十分罗嗦,调试时,在watch窗口中看到一大堆<tag>。
在新项目中,认真考虑这种情况,找到了另外一种选择,那就是JSON。选择JSON的理由很充分:
1、JSON的解释性能要比XML要好,要简洁紧凑。
2、可读性要比XML好。JSON本身就是JavaScript的语法,和程序员的思维,而非文档编写的思维。
3、JavaScript原生支持,客户端浏览器不需要为此使用额外的解释器,在web环境中使用特别合适。
在java中使用json,目前需要注意一些情况:
1、目前开源的JSON-LIB代码质量不好,最好是在此基础之上修改一个版本,或者自己重新开发一个版本。
2、使用new Date的方式替代JSON-LIB中的{year:2007, month:12, ....}之类的方式
3、JSON-LIB中,object的propertyName在输出的时候,都带上"",例如{"name": "温少"}, 其中name是的双引号是不必要的,在输出时应该判断,不需要的就是就不加上"",减少网络流量。
4、JSON的解释器中,应该支持简单的表达式,例如new Date()、new Date(2939234723)之类的,这使得JSON的表达能力会更强一些。
5、JSON应该分两种,一种只支持简单格式,类似开源的JSON-LIB,一种是通过JavaScript解释器来实现的。后者在程序中传输数据时,能够得到更强大的表达能力,但是也会导致安全问题,需要慎重使用。
使用JSON替代XML相关推荐
- 快来看看Google出品的Protocol Buffer,别仅仅会用Json和XML了
前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 事实上 是 Google出品的一种轻量 & 高效的结构化数据 ...
- 数据格式之战:JSON vs XML
在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言 ...
- JSON与XML优缺点对比分析
1. 定义介绍 1.1 XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种 ...
- 在.NET2.0中解析Json和Xml
在.NET2.0中解析Json和Xml 在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址 ...
- ajax请求json和xml数据及对json和xml格式数据的解析
ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...
- Java JSON、XML文件/字符串与Bean对象互转解析
前言 在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种.在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML ...
- SpringBoot使用教程【1】Restful API设计 返回json,xml格式...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qingfeng812/article/details/74738885 效果展示: 浏览器截图 ht ...
- json execel xml 互转
import xlwt import json import xlrd import xlrd import json import os from xml_and_json import * fro ...
- jackson (json、xml的序列化与反序列化)
jackson用于java对象到json的序列化与反序列化.还支持xml格式. jackson用于实现json与java对象的序列与反序列化.web service要实现跨机器传送对象那么就需要有一种 ...
最新文章
- 几种网站后门排查 不全面
- 海南工会云会员认证_好消息!海南农民工春节返乡最高有300元补贴!申请条件和流程→...
- python模块之re正则表达式
- 使用Microsoft Unity进行日志记录
- awk grep sed cut学习
- linux 锐捷客户端登录密码,Linux使用经验_使用锐捷客户端登录校园网
- python解释器需要另外安装吗_Python解释器安装
- 如何查看linux pagesize的大小
- 欧拉筛素数的应用-漂亮数
- 夜神模拟器怎么安装使用教程!
- 国内外著名黑客杂志 《转》
- h3cmsr830series说明书_H3C MSR830路由器怎么设置?
- Android app 启动优化
- 开发常用的google插件
- 验证手机号码是否正确
- 动态代理ip的测试步骤有哪些?
- 电信ZNHG60光猫信息虚标
- 拼多多Temu如何批量养国外买家账号进行拉新?
- BeanDefinition BeanFactory Bean的关系
- poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
热门文章
- AndoridSQLite数据库开发基础教程(5)
- 注册表数据提取工具RegRipper
- Xamarin中打开别人项目找不到android.jar文件
- mfc和mysql连接 dao_用MFC DAO 在VC++6.0进行与数据库的连接,对数据库进行定义和操作,最后断开数据库的连接等各种操作。...
- 假赋值java_Java十四天零基础入门-Java赋值运算符
- android应用课程设计报告,基于Android的多媒体播放器课程设计报告.doc
- eeglab中文教程系列(2)-绘制脑电头皮图
- 《Eve: Valkyrie Warzone》发布,非VR玩家也能公平开战
- 老牌医药收割AI红利:先投个15亿美元抢中国人才
- 仅需2张图,AI便可生成完整运动过程