Fastjson-json转java实体

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值