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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++多线程并发(五)—原子操作与无锁编程

    C++多线程并发(五)—原子操作与无锁编程一、何为原子操作前面介绍了多线程间是通过互斥锁与条件变量来保证共享数据的同步的,互斥锁主要是针对过程加锁来实现对共享资源的排他性访问。很多时候,对共享资源的访问主要是对某一数据结构的读写操作,如果数据结构本身就带有排他性访问的特性,也就相当于该数据结构自带一个细粒度的锁,对该数据结构的并发访问就能更加简单高效,这就是C++11提供的原子数据类型<atomic>。下面解释两个概念:…

    2022年6月8日
    58
  • 优化报表系统结构之报表server计算

    优化报表系统结构之报表server计算

    2022年3月4日
    41
  • 《纳什均衡与博弈论》_纳什均衡与博弈论pdf

    《纳什均衡与博弈论》_纳什均衡与博弈论pdf所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处。换句话说,如果在一个策略组合上,当所有其他人都不改变策略时,没有人会改变自己的策略,则该策略组合就是一个纳什均衡。

    2022年10月16日
    4
  • matlab griddata nan,请教Matlab的griddata的用法

    matlab griddata nan,请教Matlab的griddata的用法请教Matlab的griddata的用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!请教Matlab的griddata的用法MATLAB散乱点插值函式griddata函式语法:ZI=griddata(x,y,z,XI,YI)[XI,YI,ZI]=griddata(x,y,z,XI,YI)[…]=gri…

    2022年5月9日
    41
  • Conda源_conda配置清华源

    Conda源_conda配置清华源conda查看源的信息:condaconfig–show-sources查看源路径:condaconfig–setshow_channel_urls_yesconda添加源:condaconfig–addchannelsXXXXXXXXXXXXXX例如:(condaconfig–addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig–addcha

    2022年10月1日
    4
  • ps快捷键

    ps快捷键

    2021年9月23日
    45

发表回复

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

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