JSONObject如何轉(zhuǎn)為實體類對象
JSONObject轉(zhuǎn)為實體類對象
JSONObject js = new JSONObject();
js.put("name", "張三");
js.put("age", 18);
Student student = JSON.toJavaObject(js, Student.class);
Student student1 = JSON.parseObject(String.valueOf(js), Student.class);注:
- JSON中的toJavaObject方法和JSONObject中的getObject方法支持深轉(zhuǎn)換,可以轉(zhuǎn)換實體對象;
- 而JSON中的parseObject方法只能轉(zhuǎn)換一層對象;
深轉(zhuǎn)換
以上邊代碼中的js為例:
深轉(zhuǎn)換的的意思也就是如果在js中再put一個student對象,那么parseObject是不能轉(zhuǎn)換js中的student對象的。
補充說明
新增一個知識點
在對json轉(zhuǎn)為實體類對象時,無論json中的數(shù)據(jù)字段是否多于或少于實體類中字段,轉(zhuǎn)化都不會報錯
舉個例子:
//一個Student實體類,屬性包括姓名和年齡
@Data
public class Student {
private String name;
private Integer age;
}寫一個轉(zhuǎn)為實體類的代碼
- 情況一:json字段多于實體類字段
public class test {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "zhangsan");
jsonObject.put("age", 18);
jsonObject.put("gender", "male");
Student student = JSON.parseObject(String.valueOf(jsonObject), Student.class);
Student student1 = JSON.toJavaObject(jsonObject, Student.class);
System.out.println(student);
System.out.println(student1);
}
}結(jié)果

- 情況二:json字段少于實體類字段
public class test {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "zhangsan");
//jsonObject.put("age", 18);
//jsonObject.put("gender", "male");
Student student = JSON.parseObject(String.valueOf(jsonObject), Student.class);
Student student1 = JSON.toJavaObject(jsonObject, Student.class);
System.out.println(student);
System.out.println(student1);
}
}結(jié)果

注:這個點其實挺重要的,這充分說明了一件事,那就是json數(shù)據(jù)格式的靈活性。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot如何實現(xiàn)對配置文件中的明文密碼加密
這篇文章主要介紹了Springboot如何實現(xiàn)對配置文件中的明文密碼加密問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
詳解Spring Cloud 跨服務數(shù)據(jù)聚合框架
這篇文章主要介紹了詳解Spring Cloud 跨服務數(shù)據(jù)聚合框架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
java讀取resources文件詳解及實現(xiàn)代碼
這篇文章主要介紹了java讀取resources文件詳解及實現(xiàn)代碼的相關(guān)資料,在開發(fā)項目的時候經(jīng)常會遇到讀取文件夾里面的內(nèi)容,需要的朋友可以參考下2017-07-07
SpringCloud Webflux過濾器增加header傳遞方式
這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot多模塊依賴沖突排查與架構(gòu)優(yōu)化實戰(zhàn)
本文詳細記錄了在SpringBoot多模塊項目開發(fā)中遇到的依賴版本沖突、模塊依賴設計不合理等問題的排查和解決方案的過程,主要重點關(guān)注了父模塊依賴管理、模塊化拆分、按需依賴等等,需要的朋友可以參考下2026-04-04

