JAVA中JSON字符串与对象的转换
概要
本文致力于记录JAVA在进行JSON字符串和对象的相互转换时遇到的一些方式方法。
String类型转成普通对象
用的是阿里的包 package com.alibaba.fastjson;
这个包里的JSON.parseObject方法
CancelProcessRequest cancel = JSON.parseObject(data, CancelProcessRequest.class);
这个转换的对象类型只能是下面这种普通data数据类型,如果遇到泛类型的data数据类型这个方法就不行了。
@Data
class CancelProcessRequest {
public String bizNo;
public String reason;
public String signFlowId;
}
String类型转换成泛类型的Data
当我们传递数据类型不确定的时候,此时就可以将类型用泛类型来表示,具体如下。
@Data
class EqbRootResult<T> {
public int errCode;
public String msg;
public T data;
}
@Data
class EqbResult {
public String accountId;
public String uniqueId;
}
那么我们该如何将这种类型来转换呢?
此时我们需要用到谷歌的两个包
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
然后传入我们转换过的JSON对象,如图所示
JSONObject _rdata = JSONObject.fromObject(r_json);
Gson gson = new Gson();
EqbRootResult<EqbResult> rdata = gson.fromJson(r_json,
new TypeToken<EqbRootResult<EqbResult>>() {}.getType());
r_json是传入的String类型的数据,先将其转换成JSON格式,然后再转成需要的泛型对象,最后就可以了。
小结
该文用于记录String、JSON、对象相互转换的问题,目前遇到的这些,如果有不同的需求功能,欢迎提出,有更好的方法欢迎留言交流。