json格式化如何格式化JSON日期类型数据
json格式化 时间:2021-08-21 阅读:(
)
json数据格式,xml数据格式的区别和用法
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
易于人阅读和编写,同时也易于机器解析和生成。
它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
这些特性使JSON成为理想的数据交换语言。
JSON与XML的比较
◆可读性
JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
◆可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。
◆编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具。
无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多结构上的字符。
◆解码难度
XML的解析方式有两种:
一是通过文档模型解析,也就是通过父标签索引出一组标记。
例如:xmlData.getElementsByTagName_r("tagName"),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。
另外一种方法是遍历节点(document 以及 childNodes)。
这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。
凡是这样可扩展的结构数据解析起来一定都很困难。
JSON也同样如此。
如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。
如果你是纯粹的前台开发人员,一定会非常喜欢JSON。
但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟 xml才是真正的结构化标记语言,用于进行数据传递。
而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。
费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。
但是这样也不影响众多前台开发人员选择JSON。
因为json.js中的toJSONString()就可以看到 JSON的字符串结构。
当然不是使用这个字符串,这样仍旧是噩梦。
常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作 JSON。
以上是在Javascript中仅对于数据传递的xml与JSON的解析。
在 Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml。
如果JSON中存储Javascript复合对象,而且不知道其结构的话,我相信很多程序员也一样是哭着解析JSON的。
◆实例比较
XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。
用XML表示中国部分省市数据如下:
<?xml version="1.0" encoding="utf-8"?>
<country>
<name>中国</name>
<province>
<name>黑龙江</name>
<citys>
<city>哈尔滨</city>
<city>大庆</city>
</citys>
</province>
<province>
<name>广东</name>
<citys>
<city>广州</city>
<city>深圳</city>
<city>珠海</city>
</citys>
</province>
<province>
<name>台湾</name>
<citys>
<city>台北</city>
<city>高雄</city>
</citys>
</province>
<province>
<name>新疆</name>
<citys>
<city>乌鲁木齐</city>
</citys>
</province>
</country>
用JSON表示如下:
{
name:"中国",
province:[
{
name:"黑龙江",
citys:{
city:["哈尔滨","大庆"]
}
},
{
name:"广东",
citys:{
city:["广州","深圳","珠海"]
}
},
{
name:"台湾",
citys:{
city:["台北","高雄"]
}
},
{
name:"新疆",
citys:{
city:["乌鲁木齐"]
}
}
]
}
编码的可读性,xml有明显的优势,毕竟人类的语言更贴近这样的说明结构。
json读起来更像一个数据块,读起来就比较费解了。
不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过json的索引.province[0].name就能够读取“黑龙江”这个值。
编码的手写难度来说,xml还是舒服一些,好读当然就好写。
不过写出来的字符JSON就明显少很多。
去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而xml却包含很多重复的标记字符。
如何格式化JSON日期类型数据
json-lib-2.2可以为对应的class注册解析类,记住一定要2.2,2.1有同步问题。
切记切记。
写一个DateJsonValueProcessor.java
package anni.core.web.json;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
.sf.json.JSONObject;
.sf.json.JsonConfig;
.sf.json.processors.JsonValueProcessor;
/**
* @author Lingo
* @since 2007-08-02
*/
public class DateJsonValueProcessor implements JsonValueProcessor {
public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
private DateFormat dateFormat;
/**
* 构造方法.
*
* @param datePattern 日期格式
*/
public DateJsonValueProcessor(String datePattern) {
try {
dateFormat = new SimpleDateFormat(datePattern);
} catch (Exception ex) {
dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
}
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
public Object processObjectValue(String key, Object value,
JsonConfig jsonConfig) {
return process(value);
}
private Object process(Object value) {
return dateFormat.format((Date) value);
}
}
然后在bean -> json的时候
/**
* write.
*
* @param bean obj
* @param writer 输出流
* @param excludes 不转换的属性数组
* @param datePattern date到string转换的模式
* @throws Exception 写入数据可能出现异常
*/
public static void write(Object bean, Writer writer,
String[] excludes, String datePattern) throws Exception {
JsonConfig jsonConfig = configJson(excludes, datePattern);
JSON json = JSONSerializer.toJSON(bean, jsonConfig);
json.write(writer);
}
BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...
在之前几个月中也有陆续提到两次HostYun主机商,这个商家前身是我们可能有些网友熟悉的主机分享团队的,后来改名称的。目前这个品牌主营低价便宜VPS主机,这次有可以看到推出廉价版本的美国CN2 GIA VPS主机,月费地址15元,适合有需要入门级且需要便宜的用户。第一、廉价版美国CN2 GIA VPS主机方案我们可看到这个类型的VPS目前三网都走CN2 GIA网络,而且是原生IP。根据信息可能后续...
印象云,成立于2019年3月的商家,公司注册于中国香港,国人运行。目前主要从事美国CERA机房高防VPS以及香港三网CN2直连VPS和美国洛杉矶GIA三网线路服务器销售。印象云香港三网CN2机房,主要是CN2直连大陆,超低延迟!对于美国CERA机房应该不陌生,主要是做高防服务器产品的,并且此机房对中国大陆支持比较友好,印象云美国高防VPS服务器去程是163直连、三网回程CN2优化,单IP默认给20...
json格式化为你推荐
竞争者市场营销学中的竞争者有哪些主要类型?开发管理房地产开发与管理学的是什么背投广告搜狐的广告类型有哪些?报价多少?查看加密空间请问下怎么看加密的qq空间上海网络维护公司上海嘉定网络公司 做监控的和综合布线的有那几家免费数据采集软件那个软件可以自动每天采集几十个网站的最新信息,并且发布信息到自己的门户网站上呼叫中心系统方案我们要自己建一个呼叫中心,用于做客户服务。请问应该怎么做规划方案呢?本地连接断开本地连接老是断开怎么解决本地连接断开本地连接老是自动断开是怎么回事?md播放机哪个MD播放器比较好?
虚拟主机服务 域名拍卖 域名投资 广东服务器租用 播放vps上的视频 域名备案收费吗 cybermonday technetcal 便宜域名 kdata godaddy优惠码 mediafire下载 debian7 申请空间 租空间 我爱水煮鱼 129邮箱 流量计费 电信虚拟主机 四核服务器 更多