Fastjson-json转java实体
json转java实体可以使用Fastjson.jar包实现转换
需要用到的maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.7</version>
</dependency>
需要转实体的json
{
"error_code":0,
"data":{
"date":"2019-11-01", /*日期*/
"open":"5.850", /*开盘价*/
"close":"5.890", /*收盘价*/
"high":"5.900", /*最高价*/
"low":"5.840", /*最低价*/
"volume":"604346.000", /*成交量*/
"code":"sh601857" /*证券代码*/
},
"reason":"success"
}
实体类
public class User{
private String date;
private String open;
private String close;
private String high;
private String low;
private String volume;
private String code;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getOpen() {
return open;
}
public void setOpen(String open) {
this.open = open;
}
public String getClose() {
return close;
}
public void setClose(String close) {
this.close = close;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getVolume() {
return volume;
}
public void setVolume(String volume) {
this.volume = volume;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
测试类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class T5 {
public static void main(String[] args){
String userString = "{\"error_code\":0,\"data\":{\"date\":\"2019-10-31\",\"open\":\"5.95\",\"close\":\"5.88\",\"high\":\"5.96\",\"low\":\"5.88\",\"volume\":\"1053382\",\"code\":\"sh601857\"},\"reason\":\"success\"}";
JSONObject userJson = JSONObject.parseObject(userString);//将json字符串转换成jsonobject
Object date = userJson.get("data");//通过data(键值)过滤前后无用字符串
User user = JSON.toJavaObject((JSON) date,User.class);//写入实体类
System.out.println(user.getDate());//通过实体类get方法获取
}
}
JSONObject.getXxx()方法
JSONObject对象既然存在,那么就会提供访问其中一些键值对的访问,其中的键值对就是json字符串对应的键值对。
Object get(Object key)
这个是根据key值获取对应的value,看方法签名就知道这个方法返回的是Object对象。
JSONObject getJSONObject(String key)
这个方法是根据String的key(在使用的时候就是json字符串中的变量名称),再将value转换成对应的JsonObject对象。因为有时候我们json字符串反序列化出来的是一个嵌套对象,所以嵌套内部的json字符串也可以转换成为一个JSONObject对象。当然如果内部就是一个值的对象的时候会调用JSON的toJSON方法返回一个Object。
JSONArray getJSONArray(String key)
有时候key对应的对象是一个数组,那么可以直接转换成一个JSONArray对象,JsonArray对象和JSONObject对象的设计是一样的,实现了List接口并且把list作为一个字段进行使用。
T getObject(String key, Class clazz)
这个方法支持将JSONObject中的值根据传入的key和对应的Class直接转换为对应的T对象,这里T是泛型。同样的这个方法也支持传入Type和TypeReference
getXxx(String key)
类似于getBoolean、getDouble、getLong、getBigDecimal等方法就非常明确了,就是根据String的key(变量名称)转换成对应的包装类型或者基本类型的值。这在我们去解析json字符串中的部分键值对比较有用。
本文只是学习总结!
参考https://blog.csdn.net/zlj1217/article/details/84332739