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对象
随机推荐
- javaScript深入浅出之理解闭包
javaScript深入浅出之理解闭包 引言 闭包是个老生长谈的话题了,对于闭包网上也有很多不同的看法 <你不知道的javaScript>对于闭包是这么定义的:函数创建和函数执行不在同一个 ...
- redis过期键的策略
一.过期时间设置: 127.0.0.1:6379> expire key seconds //设置键的过期时间为多少秒 127.0.0.1:6379> setex key seconds ...
- 分享 HT 实用技巧:实现指南针和 3D 魔方导航
前言 三维场景时常需要一个导航标识,用来确定场景所处的方位. 一般有两种表现形式:指南针.小方盒(方位魔方). 参考一下百度百科中的 maya 界面,可以看到右上角有一个标识方位的小盒子,说的就是它: ...
- Nginx配置upstream实现负载均衡1
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- Net链接Sql Server语法
1.登录名.密码链接 </system.web> <appSettings> <!--<add key="MSSqlConnectionString&qu ...
- JavaScript基础有关构造函数、new关键字和this关键字(009)
1. 总是记得用new关键字来执行构造函数.前面提到,可以用构造函数创建JavaScript的对象,这个构造函数在使用的时候需要使用new关键字,但如果忘记写入new关键字,会怎么样?事实上这个函数还 ...
- 用阿里的 sketch 插件 FusionDesign 来快速设计中后台
Fusion Design 是阿里推出的新的基于sketch的快速设计方案,很适合快速设计中后台. (1) 到Fusion官方站点 https://fusion.design 注册并创建一个项目. ( ...
- PHPstorm快捷键的学习
1.Ctrl + 空格 当输入代码时,PHPstorm 会自动出现联想选项. 但是,如果在输入时联想时错过了选择,我们要想让他再一次出现联想,通常采用的方法是在先前的输入后面再输入字符,这时联想又会出 ...
- 深入理解letter-spacing,word-spacing的对比区别
letter-spacing lletter-spacing 属性增加或减少字符间的空白(字符间距). 该属性定义了在文本字符框之间插入多少空间.由于字符字形通常比其字符框要窄,指定长度值时,会调整字 ...
- 关于gulp复制文件时把整个目录结构都复制的问题解决
有这么个场景,在开发时分模块开发,但是发布时不一定将按模块分布,比如,为了便于开发,图片是按照模块存放的,但是发布时只是放在images文件夹下,此时就需要用到本文中提到的插件gulp-flatten ...