第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

[jackson]簡單寫下jackson反序列化泛型類的使用方法

標簽:
Java

1.先简单看下没有泛型的处理(这里用DataBinding处理,当然网上也有很多其他方法,就不多说啦)

首先假设请求返回的json是这样:
{"status":0,"message":"miaomiao",data:[{"username":"chino","age":"13"},{"username":"kotori","age":"16"}]}

然后是2个类:

@Getter @Setter
public class Response {
    private int status;
    private String message;
    private List<User> data;
}
@Getter @Setter
public class User {
    private String username;
    private String age;
}

假如没有定义泛型类,2行代码就可以了

ObjectMapper mapper = new ObjectMapper();
Response response = mapper.readValue(json, Response.class);
//response.getData().forEach(user -> System.out.println(user.getUsername()));

2.假如把返回的类变成通用的泛型类

@Getter @Setter
public class Response<T> {
    private int status;
    private String message;
    private T data;
}

直接传class肯定是不行的,这里需要自己显式构建:

ObjectMapper mapper = new ObjectMapper();
Response<List<User>> response = mapper.readValue(json, new TypeReference<Response<List<User>>>(){});

也可以用constructParametrizedType来构建(不过这个方法源码注释写了即将标记为过时)

ObjectMapper mapper = new ObjectMapper();
JavaType userType = TypeFactory.defaultInstance().constructParametrizedType(ArrayList.class, List.class, User.class);
JavaType javaType = TypeFactory.defaultInstance().constructParametrizedType(Response.class, Response.class, userType);
Response<List<User>> response = mapper.readValue(json, javaType);
點擊查看更多內(nèi)容
3人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
2
獲贊與收藏
5

關(guān)注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消