浅谈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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 优化算法——粒子群算法(PSO)

    优化算法——粒子群算法(PSO)一、粒子群算法的概述二、粒子群算法的流程

    2022年6月10日
    28
  • 最长上升子序列 LIS算法实现[通俗易懂]

    最长上升子序列 LIS算法实现[通俗易懂]最长上升子序列LIS算法实现LIS(LongestIncreasingSubsequence)最长上升(不下降)子序列有两种算法复杂度为O(n*logn)和O(n^2)。在上述算法中,若使用朴素的顺序查找在D1..Dlen查找,由于共有O(n)个元素需要计算,每次计算时的复杂度是O(n),则整个算法的时间复杂度为O(n^2),与原来算法相比没有任何进步。但是由于D的特点(2),在D中查…

    2022年6月5日
    23
  • ffmpeg处理字幕「建议收藏」

    ffmpeg处理字幕「建议收藏」ffmpeg处理字幕ffmpeg加载font以ass为例,第一次用ffmpeg将ass字幕加到视频里面的时候报下面的错误:Fontconfigerror:Cannotloaddefaultconfigfile[Parsed_ass_0@00000000042c33c0]Nousablefontconfigconfigurationfil…

    2025年6月23日
    0
  • pycharm安装教程并永久激活_pycharm怎么看激活时间

    pycharm安装教程并永久激活_pycharm怎么看激活时间激活前准备工作 配置文件修改已经不在bin目录下直接修改,而是通过pycharm修改 如果输入code一直弹出来,请去hosts里移除jetbrains相关的项目 1.下载新版激活成功教程补丁点击链接:https://pan.baidu.com/s/1TfHEFZBsHzPMaGVOavfWhw提取码:p9bi,并将它放置到pycharm安装目录的\bin目录下(位置可随…

    2022年8月29日
    3
  • idea2016 3.2激活码破解方法

    idea2016 3.2激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    190
  • 一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系

    一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系缘起随着小新pro发布,看到带了全功能的type-c接口,一直搞不懂什么type-c还有什么全功能,半功能?和雷电3又有什么区别,雷电3又有什么全速,半速。由于搞不清,所以网上看了很多资料,这里总结一下以备后续查阅说说usb3.1和雷电3usb接口大家再熟悉不过了,就是我们经常说的这种的但其实这个样子的全称是USBType-A,除此之外还有USBType-B,USBType-C…

    2022年6月16日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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