Fastjson-json转java实体

mac2026-01-21  5

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

最新回复(0)