导读: json转化器(共3篇)Html与Json相互转换的方法jquery简单实现html与JSon的互换1 > jquery任意版本2>实现步骤(js代码)3>html代码Json和Java相互转化对于日期的操作完美解决json-lib的JSONObject toBean( )时碰到的日期属性转换的问题 json----...
以下是中国招生考试网www.chinazhaokao.com为大家整理的《json转化器》,希望大家能够喜欢!更多资源请搜索成考报名频道与你分享!
Html与Json相互转换的方法
json转化器 第一篇
jquery简单实现html与JSon的互换
1 > jquery任意版本
2>实现步骤(js代码)
3>html代码
Json和Java相互转化对于日期的操作完美解决
json转化器 第二篇
json-lib的JSONObject.toBean( )时碰到的日期属性转换的问题 json------->Java
JSON数据是这样的:
{"birthday":"1980/01/01","name":"testname"}
操作代码:
json-lib的JSONObject.fromObject 转换JSON字符串碰到的日期属性转换的问题。
java------->Json 把一个javabean转换成一个JSON的字符串的时候遇到一个问题,因为javabean中含有Date日期的类型,格式化字符串的时候遇到把Date类型也作为一个对象了,而我想要的结果是key=value ,取出来则是 updatetime={day=24,year=2012...} 样子的。 我们可以看出
JSONObject net.sf.json.JSONObject.fromObject(Object object, JsonConfig jsonConfig)还接受一个JsonConfig对象,那么我们就应该从这里入手。
首先写一个value处理器:
public class DateJsonValueProcessor implements JsonValueProcessor{
/**
* 字母 日期或时间元素 表示 示例 <br>
* G Era 标志符 Text AD <br>
* y 年 Year 1996; 96 <br>
* M 年中的月份 Month July; Jul; 07 <br>
* w 年中的周数 Number 27 <br>
* W 月份中的周数 Number 2 <br>
* D 年中的天数 Number 189 <br>
* d 月份中的天数 Number 10 <br>
* F 月份中的星期 Number 2 <br>
* E 星期中的天数 Text Tuesday; Tue<br>
* a Am/pm 标记 Text PM <br>
* H 一天中的小时数(0-23) Number 0 <br>
* k 一天中的小时数(1-24) Number 24<br>
* K am/pm 中的小时数(0-11) Number 0 <br>
* h am/pm 中的小时数(1-12) Number 12 <br>
* m 小时中的分钟数 Number 30 <br>
* s 分钟中的秒数 Number 55 <br>
* S 毫秒数 Number 978 <br>
* z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 <br>
* Z 时区 RFC 822 time zone -0800 <br>
*/
public static final String Default_DATE_PATTERN = "yyyy-MM-dd";
private DateFormat dateFormat;
public DateJsonValueProcessor(String datePattern) {
try {
dateFormat = new SimpleDateFormat(datePattern);
} catch (Exception e) {
dateFormat = new SimpleDateFormat(Default_DATE_PATTERN);
}
}【json转化器】
@Override
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
@Override
public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) { return process(value);
}
private Object process(Object value) {
if (value == null) {
return "";
} else {
return dateFormat.format((Timestamp) value);
}
}
}
操作代码: 1. JsonConfig config = new JsonConfig();
2. config.registerJsonValueProcessor(Timestamp.class,new DateJsonValueProces
sor("yyyy-MM-dd HH:mm:ss"));
3. JSONObject.fromObject(Object bean, JsonConfig jsonConfig)
SpringMVC关于json、xml自动转换的原理研究
json转化器 第三篇
SpringMVC关于json、xml自动转换的原理研究
<mvc:resources location="/static/"
mapping="/static/**"/><mvc:annotation-driven/><context:component-scan
base-package="org.format.demo.controller" />视图配置省略.....
pom中需要有以下依赖(Spring依赖及其他依赖不显示):
<dependency> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
这个依赖分别是json序列化的依赖。
ok。我们在Controller中添加一个method:
@RequestMapping("/)
@ResponseBody
public Map<String, Object> <String, Object> map = new HashMap<String, Object>(); map.put("list", employeeService.list());【json转化器】
return map;}
直接访问地址:
我们看到,短短几行配置。使用@ResponseBody注解之后,Controller返回的对象 自动被转换成对应的json数据,在这里不得不感叹SpringMVC的强大。
我们好像也没看到具体的配置,唯一看到的就是*-dispatcher.
那么spring到底是如何实现java对象到json对象的自动转换的呢? 为什么转换成了json数据,如果想转换成
源码分析
本文使用的spring版本是4.0.2。
在讲解<mvc:annotation-driven/>这个配置之前,我们先了解下Spring的消息转换机制。
@ResponseBody这个注解就是使用消息转换机制,最终通过json的转换器转换成json数据的。
HttpMessageConverter接口就是Spring提供的http消息转换接口。有关这方面的知识大家可以参考"参考资料"中的第二条链接,里面讲的很清楚。
下面开始分析<mvc:annotation-driven/>这句配置:【json转化器】
这句代码在spring中的解析类是:
在AnnotationDrivenBeanDefinitionParser源码的152行parse方法中:
分别实例化了RequestMappingHandlerMapping,ConfigurableWebBindingInitializer,
RequestMappingHandlerAdapter等诸多类。
其中RequestMappingHandlerMapping
和RequestMappingHandlerAdapter这两个类比较重要。
RequestMappingHandlerMapping处理请求映射的,处理@RequestMapping跟请求地址之间的关系。 RequestMappingHandlerAdapter是请求处理的适配器,也就是请求之后处理具体逻辑的执行,关系到哪个类的哪个方法以及转换器等工作,这个类是我们讲的重点,其中它的属性messageConverters是本文要讲的重点。
私有方法:getMessageConverters
从代码中我们可以,RequestMappingHandlerAdapter设置messageConverters的逻辑:
1.如果<mvc:annotation-driven>节点有子节点message-converters,那么它的转换器属性
messageConverters也由这些子节点组成。
message-converters的子节点配置如下:
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.example.MyHttpMessageConverter"/> <bean
class="org.example.MyOtherHttpMessageConverter"/> </mvc:message-converters></mvc:annotation-driven>
2.message-converters子节点不存在或它的属性register-defaults为true的话,加入其他的转换器:ByteArrayHttpMessageConverter、StringHttpMessageConverter、ResourceHttpMessageConverter等。
我们看到这么一段:
这些boolean属性是哪里来的呢,它们是AnnotationDrivenBeanDefinitionParser的静态变量。
其中ClassUtils中的isPresent方法如下:
看到这里,读者应该明白了为什么本文一开始在pom文件中需要加入对应的jackson依赖,为了让json转换器jackson成为默认转换器之一。
<mvc:annotation-driven>的作用读者也明白了。
下面我们看如何通过消息转换器将java对象进行转换的。
RequestMappingHandlerAdapter在进行handle的时候,会委托给HandlerMethod(具体由子类ServletInvocableHandlerMethod处理)的invokeAndHandle方法进行处理,这个方法又转接给HandlerMethodReturnValueHandlerComposite处理。
HandlerMethodReturnValueHandlerComposite维护了一个HandlerMethodReturnValueHandler列表。HandlerMethodReturnValueHandler是一个对返回值进行处理的策略接口。然后找到确定的HandlerMethodReturnValueHandler对结果值进行处理。
最终找到RequestResponseBodyMethodProcessor这个Handler(由于使用了@ResponseBody注解)。
以上就是中国招生考试网http://www.chinazhaokao.com/带给大家的精彩成考报名资源。想要了解更多《json转化器》的朋友可以持续关注中国招生考试网,我们将会为你奉上最全最新鲜的成考报名内容哦! 中国招生考试网,因你而精彩。
最新推荐成考报名
更多- 歇后语_歇后语大全_歇后语大全及答案_爆笑歇后语
- 大学排名_大学排名2018排行_大学查询_中国大学名单
- 成语大全_四字成语_在线成语词典_成语查询
- 成语接龙大全查询,成语接龙游戏,在线成语接龙
- 全国安全教育平台入口_学校安全教育平台
- 社保查询网-社会保障卡查询,社会保险查询,社保网上查询
- 汉字简体繁体转换_在线繁体字转换工具
- 数字大写转换|人民币金额(数字)大小写转换在线工具
- 年龄计算器实际岁数计算器 - 周岁虚岁计算器
- 产假计算器-算产假计算器在线2018-2018年产假自动计算器
- 预产期计算器-怀孕孕期计算器-怀孕天数计算
- 中国文库网-教育资源网-范文文章
- 邮编区号查询网
- 致富商机网-致富点子_创业项目
- 创业项目网--最热门的投资项目
- 中国邮政邮编查询号码
- 电话区号查询
- 全国车牌号归属地大全
- 在线网速测试|宽带速度测试
- 人民币汇率查询
- ●理财有没有风险 金融互联网理财
- ●qq网名
- ●2016最新伤感说说
- ●谈笑风生造句
- ●读书的名言
- ●资产清查报告
- ●贫困户申请书
- ●财务自查报告
- ●离婚起诉书
- ●赞美老师的演讲稿
- ●车间管理
- ●车辆购置税
- ●跨越百年的美丽读后感
- ●跟女友离别的话
- ●超市管理制度
- ●起诉状范本
- ●赠别诗大全
- ●描写夏天的句子
- ●描写友谊的诗句
- ●迁户口申请书
- ●转正申请表范本
- ●这个杀手不太冷台词
- ●运动会稿子精选
- ●那么那么造句
- ●送给男朋友的情话大全
- ●钳工实训报告
- ●霸气说说大全
- ●骂人不带脏字的
- ●幼儿园见习个人总结
- ●追女孩子的短信