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

后台debug调试,plan的值
浅谈flasjson中TypeReference_第1张图片

你可能感兴趣的:(java)