欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSONObject如何轉(zhuǎn)為實體類對象

 更新時間:2024年11月11日 09:17:31   作者:有點野的程序猿  
介紹了JSONObject轉(zhuǎn)為實體類對象的三種方法:JSONObject中的toJavaObject方法和getObject方法支持深轉(zhuǎn)換,而JSON中的parseObject方法只能轉(zhuǎn)換一層對象,此外,還補充說明了在對JSON轉(zhuǎn)為實體類對象時,無論JSON中的數(shù)據(jù)字段是否多于或少于實體類中字段,轉(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)文章

  • java實現(xiàn)獲取安卓設(shè)備里已安裝的軟件包

    java實現(xiàn)獲取安卓設(shè)備里已安裝的軟件包

    本文給大家介紹的是如何獲取設(shè)備中已經(jīng)安裝的應(yīng)用軟件包的代碼,其核心方法原理很簡單,我們通過Android中提供的PackageManager類,來獲取手機中安裝的應(yīng)用程序信息
    2015-10-10
  • SpringBoot啟動流程SpringApplication準備階段源碼分析

    SpringBoot啟動流程SpringApplication準備階段源碼分析

    這篇文章主要為大家介紹了SpringBoot啟動流程SpringApplication準備階段源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • java實現(xiàn)在線聊天系統(tǒng)

    java實現(xiàn)在線聊天系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)在線聊天系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)

    java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)

    這篇文章主要給大家介紹了關(guān)于java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • ThreadLocal常用方法、使用場景及注意事項說明

    ThreadLocal常用方法、使用場景及注意事項說明

    這篇文章主要介紹了ThreadLocal常用方法、使用場景及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java 網(wǎng)絡(luò)編程總結(jié)

    Java 網(wǎng)絡(luò)編程總結(jié)

    這篇文章主要給大家分享Java 網(wǎng)絡(luò)編程的一個總結(jié),說到網(wǎng)絡(luò)編程肯定都會想到IP地址、端口、通信協(xié)議等一些必不可少的元素,下面來看看文章的詳細介紹吧
    2021-11-11
  • 關(guān)于ArrayList初始創(chuàng)建設(shè)定長度問題

    關(guān)于ArrayList初始創(chuàng)建設(shè)定長度問題

    在使用ArrayList時,初始化長度并不等同于直接設(shè)定數(shù)組大小,如通過構(gòu)造函數(shù)指定長度,僅僅是在內(nèi)部開辟了相應(yīng)的存儲空間,并不會改變ArrayList的實際元素個數(shù),即size屬性仍然為0,因此,嘗試直接訪問未實際添加元素的位置會引發(fā)異常
    2024-11-11
  • Spring AOP常見使用場景、術(shù)語及設(shè)計模式應(yīng)用方式

    Spring AOP常見使用場景、術(shù)語及設(shè)計模式應(yīng)用方式

    AOP是一種編程思想,可以將橫切關(guān)注點從業(yè)務(wù)邏輯中分離出來,以便更好地管理和維護,它通過使用Aspect、JoinPoint、Advice等術(shù)語來實現(xiàn),代理、裝飾器和攔截器等設(shè)計模式在AOP中經(jīng)常被使用
    2024-12-12
  • Springboot配置圖片虛擬映射示例代碼

    Springboot配置圖片虛擬映射示例代碼

    這篇文章主要給大家介紹了關(guān)于Springboot配置圖片虛擬映射的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用springboot具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-11-11
  • 淺談一下Java中的內(nèi)存模型JMM

    淺談一下Java中的內(nèi)存模型JMM

    這篇文章主要介紹了淺談一下Java中的內(nèi)存模型JMM,JMM,全程是?Java?Memory?Model?,直譯就是?Java?內(nèi)存模型,根據(jù)這個名字,可以知道它是?Java?設(shè)計用來管理內(nèi)存的一個模型,需要的朋友可以參考下
    2023-08-08

最新評論