fastjson将json字符串转化为java对象
一、导入一个fastjson的jar包
在pom.xml里加上这个依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
二、Json字符串格式
这个例子中的json中包含了json对象和数组
{
"result": true,
"data": {
"statusCode": 200,
"extra": "请求成功"
},
"missons": [
{
"id": 10,
"publishTime": "2020-3-10",
"label": "实习",
"money": 10,
"deadline": "2020-3-30",
"title": "找人"
},
{
"id": 11,
"state": 0,
"publishTime": "2020-3-10",
"money": 10,
"deadline": "2020-3-30",
"peopleAmount": 1,
"changeNumber": 0,
"title": "abc"
},
{
"id": 12,
"uid": 15,
"state": 0,
"publishTime": "2020-3-10",
"missionInfo": "求考研数学的资料",
"label": "考研",
"money": 10,
"existenceDate": "2020-3-25",
"deadline": "2020-3-30",
"peopleAmount": 0,
"changeNumber": 0,
"title": "找资料"
}
]
}
三、根据json的格式创建Java类
创建的Java类中的属性名字需要和json中的对应,这样才能实现自动的转换。
json中一个字段对应Java类的一个属性,json数组在Java可以使用List表示,一个json对象用一个类表示
public class JsonTest {
private String result;
private Data data;
private List<Misson> missions;
}
data对象
public class Data {
private String statusCode;
private String extra;
}
missons数组
public class Misson {
private String mid;
private String state;
private String title;
private String publishTime;
private String missionInfo;
private String label;
private String money;
private String existenceDate;
private String deadline;
private String peopleAmount;
private String changeNumber;
}
四、给java类的所有属性添加setter方法
在转换的过程中发现,如果没有添加setter方法,转换后得到的对象都为空。
因为转换过程中底层使用了PropertyDescriptor反射获取属性,通过PropertyDescriptor的getWriteMethod()方法获取属性的setter方法,最后通过setter方法给属性赋值,如果没有获取到setter方法(getWriteMethod()方法返回了null),就会导致后续无法执行赋值。
每个类都要加,这里只放一个的代码(Getter和Setter方法都加上了):
public class JsonTest {
private String result;
private Data data;
private List<Mission> missions;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public List<Misson> getMissions() {
return missions;
}
public void setMissions(List<Json> missions) {
this.missions = missions;
}
}
五、转换为java对象
传入一个json字符串,将它转换为JsonTest对象
public JsonTest parseJson(String json) {
JsonTest jsonTest = JSONObject.parseObject(json,JsonTest.class);
return jsonTest;
}
fastjson将json字符串转化为java对象的更多相关文章
- 取得远端相应Json并转化为Java对象(嵌套对象)二
工程下载链接:https://files.cnblogs.com/files/xiandedanteng/JsonParse20190929.rar 客户端: 如果从Restful Service取得 ...
- 将String类型的json字符串转换成java对象
1,import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); Mycl ...
- fastjson将json字符串转化成bean对象解析出错的检查方法
我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ...
- 取得远端相应Json并转化为Java对象一
JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...
- json字符串转换成java对象
- FastJSON解析Json字符串(反序列化为List、Map)
在日常开发与数据库打交道的时候,常有以Json格式的字符串存储到数据库的情况,当在Java程序中获取到对应的Json格式的String字符串后,如何才能转换为我们想要的数据格式(比如转换成Java中的 ...
- java中将jsonObject字符串转化为Map对象
java中将jsonObject字符串转化为Map对象 1.我们这里使用json-lib包进行转换,可在http://json-lib.sourceforge.net/下载依赖于下面的jar包: ja ...
- nodejs将JSON字符串转化为JSON对象
如何将JSON字符串转化为JSON对象? JSON.parse(str) JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法: 问题来了,道理我都懂 ...
- 转换成json字符串,与json字符串转换成java类型都要先转换成json对象
转换成json字符串,与json字符串转换成java类型都要先转换成json对象
随机推荐
- 利用salt进行系统初始化操作
使用salt对系统进行初始化操作 概述 使用cobbler安装的操作系统,默认安装了一些基本的软件,比如zabbix-agent.salt-minion等,还没有对系统进行基本的初始化操作,为了实现标 ...
- 性能测试之JVM的故障分析工具VisualVM
VisualVM 是随JDK一同发布的jvm诊断工具,通过插件可以扩展很多功能,插件扩展也是其精华所在. 提供了一个可视界面,用于在Java应用程序在Java虚拟机上运行时查看有关Java应用程序的详 ...
- [ C++ ] set_new_handler解析
当 operator new 中malloc返回值为0(NULL)时,表示分配内存失败(可能是因为内存不足), 此时会通过_callnewh()调用用户通过set_new_handler()设定的ne ...
- android handle详解2 主线程给子线程发送消息
按照android handler详解分析的原理我们可以知道,在主线程中创建handle对象的时候,主线程默认创建了一个loop对象使用threalocal函数将loop对象和主线程绑定. 我们能不能 ...
- 如果人生也能存档——C#中的备忘录模式
大家好,老胡又和大家见面了.首先承认今天的博客有点标题党了,人生是没有存档,也没有后悔药的.有存档和后悔药的,那是游戏,不知道这是不是游戏让人格外放松的原因之一. 今天恰逢端午放假,就让我们来试着做一 ...
- Linux安装Redis 6.0.5 ./install_server.sh报错
Linux安装Redis 6.0.5 ./install_server.sh报错 linux 安装Redis6.0.5时 进行到./install_server.sh时报错, This systems ...
- webpack入门进阶(2)
1.4.webpack-dev-server webpack-dev-server是我们在开发阶段需要用到的一个服务器,它会把代码打包到内存,我们可以通过http的方式访问到打包到内存的代码 安装 n ...
- dup与dup2函数
依赖的头文件 #include <unistd.h> 函数定义 int dup(int oldfd); int dup2(int oldfd, int newfd); 函数作用 dup和d ...
- 【树形dp】Bzoj 1040骑士
Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火 ...
- ES11来了,还学得动吗?
写在前面 ES2020(即 ES11)上周(2020 年 6 月)已经正式发布,在此之前进入 Stage 4 的 10 项提案均已纳入规范,成为 JavaScript 语言的新特性 一.特性一览 ES ...