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)
上一篇 2022年10月10日 下午11:36
下一篇 2022年10月10日 下午11:46


相关推荐

  • phpMyAdmin安装教程「建议收藏」

    phpMyAdmin安装教程「建议收藏」phpmyadmin是一款mysql数据库管理工具,是由php编写的,可以通过互联网控制和操作mysql,通过phpmyadmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库,为了实现后一种,你将需要合理设置MySQL用户,他只能对允许的数据库进行读/写,那要等到你看过MySQL手册中相关的部分。

    2022年6月1日
    38
  • 如何把origin的柱状图每个设计不同颜色_柱状图一柱两种颜色

    如何把origin的柱状图每个设计不同颜色_柱状图一柱两种颜色按住Ctrl键,双击你想改变的柱子,OK。​

    2022年9月29日
    4
  • 三菱modbusrtu通讯协议报文_modbus通讯协议详解

    三菱modbusrtu通讯协议报文_modbus通讯协议详解点击箭头处“工业之家”,选择“关注公众号”!modbus通讯协议详解Modbus协议可以说是工业自动化领域应用最为广泛的通讯协议,因为它的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商的产品可以简单可靠的接入网络,实现系统的集中监控,分散控制功能。目前Modbus规约主要使用的是ASCII,RTU,TCP等,并没有规定物理层。目前Modbus常用的接口形式主要有R…

    2025年9月2日
    10
  • OpenClaw + MCP:让 AI 助手连接任意工具的终极方案

    OpenClaw + MCP:让 AI 助手连接任意工具的终极方案

    2026年3月14日
    2
  • SQL分页查询_Sql根据某个字段分页

    SQL分页查询_Sql根据某个字段分页SQL分页查询:背景​ 在公司的系统中有一个平台是做配置管理的就是所谓的CRUD的平台,但是点击后进去到页面第一次看到的是一次查询的页面(点击页面自动的触发查询的功能)后面就可以你的CRUD的操作是给运营的同事来操作的,但是一般的是我们数据量比较的少的业务是之间查询出来所有的数据,直接返回给前端的让他自己做分页的,但是有一些数据量达到上万级别的时候,不能让他们乱搞了,…

    2022年4月19日
    139
  • rpm安装和卸载[通俗易懂]

    rpm安装和卸载[通俗易懂]一安装RPM是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。  1.安装软件:执行rpm-ivhrpm包名,如:  #rpm-ivhapache-1.3.6.i386.rpm  2.升级软件:执行rpm-Uvhrpm包名。  3.反安装:执行rpm-erpm包名。  4.查询软件包的详细信息:执行r

    2022年5月22日
    93

发表回复

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

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