浅谈FastJson的TypeReference用法

简单描述:看同事提交的代码,发现有一行代码 似曾相识,但却朦朦胧胧,ε=(´ο`*)))唉很明显自己没掌握呗,于是乎,就百度了一下

干货:对进行泛型的反序列化,使用TypeReference可以明确的指定反序列化的类型,

代码:

 //js代码 将form表单里的各种元素里的值组装成js对象,然后转成json串,ajax传递给后台
 var planJson = JSON.stringify($("#addForm").serializeJson());

js调试结果:

//后台java代码
String planJson = request.getParameter("planJson"); if (!Tools.isEmpty(planJson)) { Plan plan = JSON.parseObject(planJson, new TypeReference
<Plan>() { }); modelMap.addAttribute("plan", plan); }

说明:JSON.parseObject(planJson, new TypeReference<Plan>(){})是把字符串planjson转化为相应的JSONObject对象,“键值对”形式,然后通过new TypeReference<Plan>(){ }匿名内部类来吧planjson的JSONObject转化为Plan对象,注意一点,前台在做 $("#addForm").serializeJson() 处理的时候,form表单里还有许多隐藏域,不属于plan对象本身的属性,通过TypeReference只把属于plan对象属性的参数和值组装成plan对象 (个人理解,欢迎指正)

后台debug调试,plan的值

 

posted @ 2018-10-19 14:11  ジ绯色月下ぎ  阅读(41941)  评论(2编辑  收藏  举报