浅谈FastJson的 new TypeReference 用法

浅谈FastJson的 new TypeReference 用法简单描述:看同事提交的代码,发现有一行代码似曾相识,但却朦朦胧胧,ε=(´ο`*)))唉很明显自己没掌握呗,于是乎,就百度了一下干货:对进行泛型的反序列化,使用TypeReference可以明确的指定反序列化的类型,代码: 1 2 //js代码将form表单里的各种元素里的值组装成js对象,然后转成json串,ajax传递给后台 var…

大家好,又见面了,我是你们的朋友全栈君。

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

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

代码:

1

2

//js代码 将form表单里的各种元素里的值组装成js对象,然后转成json串,ajax传递给后台

var planJson = JSON.stringify($("#addForm").serializeJson());

js调试结果:

浅谈FastJson的 new TypeReference 用法

复制代码

//后台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的值

浅谈FastJson的 new TypeReference 用法

 

转载自: https://www.cnblogs.com/xuchao0506/p/9816143.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149002.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python使用缩进来表示代码块,缩进的空格数固定为4个(python中空格怎么打)

    defcalc(numbers):sum=0forninnumbers:sum=sum+n*nreturnsumprint(calc([1,2,4]))现在返回的值又是什么呢:结果返回1为什么会返回1,仔细分析一下,代码我将return进行了缩进,这时return是基于for的每一个循环返回一个值,并且return当第一个条件满足时就不在往下执行了,所以当传入第一个1时,sum=0+…

  • 如何设置VSCode删除整行快捷键?

    如何设置VSCode删除整行快捷键?如何设置VSCode删除整行快捷键?在使用VSCode的时候,发现它的快捷键是Ctrl+Shift+K那怎么设置成我们经常用的Ctrl+D呢1.选择文件–>首选项–>键盘快捷方式2.输入CtrlD,对应的是将下一个查找匹配项添加到选择,点击前面的编辑,将快捷键改成(Ctrl+Shift+Alt+D)改成一个不会与现有的快捷键重复就行;3.输入CtrlShiftK找到原来的删除整行快捷命令,将其改成Ctrl+D,就可以愉快地删除了…

  • java caller_callee和caller属性的区别[通俗易懂]

    java caller_callee和caller属性的区别[通俗易懂]在函数内部,有两个特殊的对象:arguments和this。arguments是一个类数组对象,用于存放传入函数中的所有参数。callee是arguments对象的属性,caller是所有函数对象的属性。calleecallee是一个指针,指向拥有当前arguments对象的函数,即返回正在执行的函数本身的引用。使用callee时要注意:1这个属性只有在函数执行时才有效2它有一个length…

    2022年10月29日
  • cisco logging 配置

    cisco logging 配置

  • 网学天地考研资料分享_零极区块链怎么赚钱

    网学天地考研资料分享_零极区块链怎么赚钱孤荷凌寒自学第189天区块链103天Dapp058【主要内容】今天继续学习实战,终于完全实现一个波菜类的猜大小的智能合约,并开始准备了解erc721合约标准。共耗时26分钟。(此外整理作笔记花费

  • 前端基础之CSS_1[通俗易懂]

    前端基础之CSS_1[通俗易懂]摘要CSS(层叠样式表)的三种设置方法基本选择器组合选择器属性选择器分组与嵌套伪类选择器伪元素选择器选择器的优先级一些样式的设置(字体、文本、背景、边框)display属性设置01.CSS(层叠样式表)的三种设置方法CSS又名层叠样式表,它的作用就是给H…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号