Object与json字符串的相互转换[通俗易懂]

Object与json字符串的相互转换[通俗易懂]第一步:引入fastjson的依赖jar包注:maven项目,直接在pom.xml中进行配置即可。注:如果引入此版本的依赖,导致项目不能启动(报错:找不到启动类);那么可以换一个版本的fastjson即可。给出文字版:<!–fastjson–><dependency><groupId>com.alibaba</…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Object与json字符串的相互转换:

第一步:引入fastjson的依赖jar包

Object与json字符串的相互转换[通俗易懂]

注:maven项目,直接在pom.xml中进行配置即可。

注:如果引入此版本的依赖,导致项目不能启动(报错:找不到启动类);那么可以换一个版本的fastjson即可。

给出文字版:

<!-- fastjson -->

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.2.47</version>

</dependency>

第二步:进行JSON字符换与Object的相互转换

Java对象转化为json字符串:

示例:

Object与json字符串的相互转换[通俗易懂]

输出结果为:

 Object与json字符串的相互转换[通俗易懂]

 

json字符串转化为java对象:

先给出实体类:

Object与json字符串的相互转换[通俗易懂]

json转换为java对象示例:

Object与json字符串的相互转换[通俗易懂]

输出结果为:

Object与json字符串的相互转换[通俗易懂]

注:如果是比较复杂的对象的话,我们可以用TypeReference来进行转换,如:
       A<B> instance = JSON.parseObject(jsonStr, new TypeReference<A<B>>() {});

提示1:实体类模型的setter、getter方法一定要按标准来;否者fastjson将不能识别,
             导致转换出错
。

提示2:当使用fastjson将json字符串转化为对象时,fastjson默认是对大小写不敏感的。
            即:假设json字符串里面的key为aBCd,对象里面的属性是abcd,那么也该属
                   性也是能够转换的;注意:Spring的jackson默认是大小写敏感的。

提示3:我们在将对象转化为json字符串时,可以使用@JSONField()注解来初步做一些
             配置,如:设置某一属性转换为指定key的json值、设置该属性对应的值在
             转换后的json字符串的哪一个位置
等等,

如:

Object与json字符串的相互转换[通俗易懂]

(随便new了一个上图中的User对象并设置点属性值后)使用fastjson转换后得到的json字串是这样的:

Object与json字符串的相互转换[通俗易懂]

注: 类似的,public static <T> List<T> parseArray(String text, Class<T> clazz)可将json字符串转换为
      对应泛型的集合。

说明:上面列出的是比较常用的fastjson的方法,其实fastjson还提供了很多方法:

Object与json字符串的相互转换[通俗易懂]

根据需求进行方法的选择即可。

提示4:我们在将json字符串反序列化为对象时,可以使用@JSONField注解的alternateNames属
             性
(或name)来指定反序列化时对应的字段。
             注:name属性在序列化、反序列化时,都会起作用;而alternateNames属性只会在反序
                    列化时,才会起作用。

如:

Object与json字符串的相互转换[通俗易懂]

注:上图的结论,基于fastjson1.2.66,不同版本的fastjson可能存在细小差异。

 

^_^ 若有不足,欢迎指正

^_^ 本文已经被收录进《程序员成长笔记(二)》,作者JustryDeng

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

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

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


相关推荐

  • 360自动拦截的防护怎么修改_微信屏蔽投诉按钮代码

    360自动拦截的防护怎么修改_微信屏蔽投诉按钮代码个人有各自不同的编写方法。不必拘泥一格。只要了解原理是访问首页,运行js文件,在JS文件里面调用一个文件,显示网站。JS的写法有很多,比如还有下面的写法:document.write(unescape(unescape(unescape(unescape(unescape(‘%252525253Cframeset%2525252520rows%252525253D%2525252522*%

    2022年11月3日
  • 《前端运维》一、Linux基础–06Shell流程控制

    这章我们来学习下流程控制,简单来说就是逻辑判断和循环的写法。并不复杂,我们来简单地看下。1、if语句shell的if语句有两种写法,一种是shell脚本式的,一种是命令式的。ifconditi

    2022年3月25日
  • freemarker 的ObjectWrapper Settings

    freemarker 的ObjectWrapper Settings

    2021年8月28日
  • tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space

    tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space

    2020年11月12日
  • 超强物联网架构解读图_物联网的体系架构是什么

    超强物联网架构解读图_物联网的体系架构是什么oT科技物语的小伙伴们,我是ICE青,特别喜欢金庸大师作品的ICE青。因此,本期开始我将为大家介绍《物联网平台之独孤九剑》,看万物互联的世界何以笑傲江湖——「总决式」:物联网概述和架构「破剑式」:OceanConnect物联网平台概述「破刀式」:OceanConnect物联网特性概述「破枪式」:业务流程「破鞭式」:北向API「破索式」:南向Profile「破掌式」:…

    2022年9月17日
  • 网络流量分析netflow

    网络流量分析netflow前言  随着宽带互联网在中国的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业务流量监测系统对其网络以及网络所承载的各类业务进行及时、准确的流量和流向分析,进而挖掘网络资源潜力,控制网络互联成本,并为网络规划、优化调整和业务发展提供基础依据。  目前国内电信运营商已建的网络管理系统所能实现

    2022年4月29日

发表回复

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

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