我们在后端调用接口得到的结果集后,通常结果集是json的形式,如果我们要想获取json中得到内容,我们可以将json转换为class类,下面我们一起来看看吧
引入maven依赖
首先我们引入maven依赖,我这里引入的是1.2.75版本maven依赖入口
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
将result结果集转换为class类
首先我们要定义一个json的实体类
定义一个登录的实体类
@Data
public class LoginClass extends Model{
}
@Data
public class Model {
@JSONField(name = "code")
public String code;
@JSONField(name = "msg")
public String msg;
@JSONField(name = "data")
public String data;
}
实现
public LoginClass jsonToClass(String result) {
LoginClass loginClass = JSON.parseObject(result, LoginClass.class);
System.out.println("code:" + loginClass.code);
System.out.println("msg" + loginClass.msg);
System.out.println("data" + loginClass.data);
return loginClass;
}
这样我们就将json实体类转换成了class类,是不是很方便
定义泛型方法
但是我们会发现这有个问题
我们转换的类肯定不止一个,那么我们是不是可以封装一个json转实体类的方法,我们发现传过去的是一个LoginClass.class,那么我们就发现,是不是可以来一个泛型,传过来的是不同的实体类映射呢
所以小编便封装了一个方法
/**
* @param result 结果集
* @param result InfoClass 映射实体类
* @return 返回映射的实体类
*/
public <W> W jsonToClass(String result, Class<W> InfoClass) {
return JSON.parseObject(result, userInfoClass);
}