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


相关推荐

  • 实现一个div的拖拽效果_js如何实现拖拽和上下移动

    实现一个div的拖拽效果_js如何实现拖拽和上下移动公司要开一个技术分享会,给我们出了几个简单的题去实现,其中有如何实现表格中列之间的拖拽,我知道html5中有个新方法可以实现,但是没有认真学习,现在闲了去学学,发现关于drag和drop的文章有很多,

    2022年8月3日
    4
  • 请问怎么获取对方IP地址

    请问怎么获取对方IP地址

    2021年7月30日
    44
  • tracert/traceroute原理

    tracert/traceroute原理一、路由追踪程序traceroute/tracertTraceroute是Linux和MacOS等系统默认提供的路由追踪小程序,Tracert是Windows系统默认提供的路由追踪小程序。二者的功能相同,都能探测数据包从源地址到目的地址经过的路由器的IP地址。Traceroute/Tracert的实现都借助了TTL:通过向目的地址发送一系列的探测包,设置探测包的TTL初始值分别为1,2,3…,根据

    2022年7月21日
    14
  • HP Loadrunner 11 安装+激活成功教程+汉化+乱码

    HP Loadrunner 11 安装+激活成功教程+汉化+乱码一、激活成功教程HPLoadrunner+汉化1、在HP官网上注册(必须要注册才能下载)2、下载LoadRunner11安装包  下载地址:http://www8.hp.com/cn/zh/software-solutions/software.html?compURI=1175451#-HPCDC-trackGatedLink=TrialSoftware|3-3KSG8SS|T

    2022年7月22日
    17
  • java递归生成树结构_java递归生成树形菜单

    java递归生成树结构_java递归生成树形菜单publicList getAllCommType(){  ListtreeList=newArrayList();  //取到父节点id为0,只有一个  ListtypeList=commType.getAllCommodityType();  for(Commodity_typetype:typeList){   Treetree=newTree();

    2022年9月17日
    1
  • win7、win10系统JDK环境变量配置

    win7、win10系统JDK环境变量配置jdk环境变量配置共包括三项:JAVA_HOME、CLASSPATH、PATH。配置过程如下:右键点击“我的电脑”(有的系统叫“计算机”、“此电脑”等等),属性—>高级系统设置—>环境变量,在“系统变量”栏下进行以下操作:1.新建变量名:JAVA_HOME变量值:jdk安装路径,如:D:\Java\jdk1.6.0_452.新建变量名:CL…

    2022年7月17日
    21

发表回复

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

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