国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 對象轉(zhuǎn)Json,@JSONField對象字段重命名和順序問題

這篇具有很好參考價值的文章主要介紹了Java 對象轉(zhuǎn)Json,@JSONField對象字段重命名和順序問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、引入maven依賴

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.66</version>
        </dependency>

二、字段重命名

1.創(chuàng)建一個測試實體

import lombok.Data;

import java.io.Serializable;

/**
 * @類名 WeChatBusinessLicenseInfo
 * @描述 營業(yè)執(zhí)照/登記證書信息(測試用)
 * @版本 1.0
 * @創(chuàng)建人 XuKang
 * @創(chuàng)建時間 2021/12/24 10:43
 **/
@Data
public class LkWeChatBusinessLicenseInfo implements Serializable {

    private static final long serialVersionUID = 1582941630439552458L;

    private String businessLicenseCopy;

    private String businessLicenseNumber;

    private String merchantName;

    private String legalPerson;

    private String companyAddress;

    private String businessTime;

    public LkWeChatBusinessLicenseInfo(){
        this.businessLicenseCopy = "1";
        this.businessLicenseNumber = "2";
        this.merchantName = "3";
        this.legalPerson = "4";
        this.companyAddress = "5";
        this.businessTime = "6";
    }
}

2.將實體轉(zhuǎn)換為json字符串,看看未轉(zhuǎn)換前的效果

System.out.println(JSONObject.toJSONString(new LkWeChatBusinessLicenseInfo()));

{
????"businessLicenseCopy":"1",
????"businessLicenseNumber":"2",
????"businessTime":"6",
????"companyAddress":"5",
????"legalPerson":"4",
????"merchantName":"3"
}

3.我們要轉(zhuǎn)換為帶下劃線的key,例如把businessLicenseCopy轉(zhuǎn)換為business_license_copy

我們需要修改實體,加上注解@JSONField

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;

/**
 * @類名 WeChatBusinessLicenseInfo
 * @描述 營業(yè)執(zhí)照/登記證書信息(測試用)
 * @版本 1.0
 * @創(chuàng)建人 XuKang
 * @創(chuàng)建時間 2021/12/24 10:43
 **/
@Data
public class LkWeChatBusinessLicenseInfo implements Serializable {

    private static final long serialVersionUID = 1582941630439552458L;

    @JSONField(name = "business_license_copy")
    private String businessLicenseCopy;

    @JSONField(name = "business_license_number")
    private String businessLicenseNumber;

    @JSONField(name = "merchant_name")
    private String merchantName;

    @JSONField(name = "legal_person")
    private String legalPerson;

    @JSONField(name = "company_address")
    private String companyAddress;

    @JSONField(name = "business_time")
    private String businessTime;

    public LkWeChatBusinessLicenseInfo(){
        this.businessLicenseCopy = "1";
        this.businessLicenseNumber = "2";
        this.merchantName = "3";
        this.legalPerson = "4";
        this.companyAddress = "5";
        this.businessTime = "6";
    }

}

4.加上注解后打印轉(zhuǎn)換后的json

System.out.println(JSONObject.toJSONString(new LkWeChatBusinessLicenseInfo()));

{
????"business_license_copy":"1",
????"business_license_number":"2",
????"business_time":"6",
????"company_address":"5",
????"legal_person":"4",
????"merchant_name":"3"
}

三、字段排序

1.我們輸出打印的json是這樣的

{
????"business_license_copy":"1",
????"business_license_number":"2",
????"business_time":"6",
????"company_address":"5",
????"legal_person":"4",
????"merchant_name":"3"
}

我們想按照一定的順序重新排序key

2.在@JSONField注解加上排序ordinal

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;

/**
 * @類名 WeChatBusinessLicenseInfo
 * @描述 營業(yè)執(zhí)照/登記證書信息(測試用)
 * @版本 1.0
 * @創(chuàng)建人 XuKang
 * @創(chuàng)建時間 2021/12/24 10:43
 **/
@Data
public class LkWeChatBusinessLicenseInfo implements Serializable {

    private static final long serialVersionUID = 1582941630439552458L;

    @JSONField(name = "business_license_copy",ordinal = 1)
    private String businessLicenseCopy;

    @JSONField(name = "business_license_number",ordinal = 2)
    private String businessLicenseNumber;

    @JSONField(name = "merchant_name",ordinal = 3)
    private String merchantName;

    @JSONField(name = "legal_person",ordinal = 4)
    private String legalPerson;

    @JSONField(name = "company_address",ordinal = 5)
    private String companyAddress;

    @JSONField(name = "business_time",ordinal = 6)
    private String businessTime;

    public LkWeChatBusinessLicenseInfo(){
        this.businessLicenseCopy = "1";
        this.businessLicenseNumber = "2";
        this.merchantName = "3";
        this.legalPerson = "4";
        this.companyAddress = "5";
        this.businessTime = "6";
    }

}

3.輸出打印轉(zhuǎn)換后的實體:

System.out.println(JSONObject.toJSONString(new LkWeChatBusinessLicenseInfo()));

{
????"business_license_copy":"1",
????"business_license_number":"2",
????"merchant_name":"3",
????"legal_person":"4",
????"company_address":"5",
????"business_time":"6"
}

四、總結(jié)

重命名除@JSONField,還有@JsonProperty、@SerializedName;

@JsonProperty主要用于入?yún)⑥D(zhuǎn)換,和Json字符串序列化為Java對象;

@SerializedName 改變了默認(rèn)序列化和默認(rèn)反序列化的字段取值;文章來源地址http://www.zghlxwxcb.cn/news/detail-402204.html

到了這里,關(guān)于Java 對象轉(zhuǎn)Json,@JSONField對象字段重命名和順序問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JSON對象字段為null值的顯示處理

    JSON對象字段為null值的顯示處理

    如何將JSON對象中字段為null值的也顯示出來 如果字段的值為null,json對象的默認(rèn)設(shè)置是當(dāng)字段為null時,不會將該字段和null值添加到這個json對象中; 1、針對jackson的json對象全局配置(舉例application.properties文件): 針對gson的json對象全局配置(舉例application.properties文件): 當(dāng)然也可以通過

    2024年02月12日
    瀏覽(27)
  • java中使用BeanUtils.copyProperties方法對象復(fù)制同名字段類型不同賦值為空問題解析

    java中使用BeanUtils.copyProperties方法對象復(fù)制同名字段類型不同賦值為空問題解析

    對象之間的復(fù)制,dto對象中字段類型為String,model中字段類型為BigDecimal。使用BeanUtils.copyProperties方法進(jìn)行對象批量復(fù)制。 提示:這里描述項目中遇到的問題: 使用Spring 的 BeanUtils.copyProperties 方法發(fā)現(xiàn)dto中的String類型字段無法轉(zhuǎn)換為model中的BigDecimal類型同名字段。 使用Spring

    2024年02月13日
    瀏覽(37)
  • 對比兩個json對象有那幾個字段被修改,并返回有改動的字段內(nèi)容

    ?如果您想比較兩個 JSON 對象,找出哪些字段發(fā)生了變化,并返回發(fā)生變化的字段及其新的值,您可以編寫一個函數(shù)來遞歸比較對象。以下是一個 TypeScript 示例: 這個函數(shù) compareObjects 將遞歸比較兩個對象,并返回發(fā)生變化的字段及其新值。在示例中, changes 對象將包含 { b:

    2024年02月02日
    瀏覽(12)
  • 接口請求與對象轉(zhuǎn)json中字段大小寫的處理

    》前端請求對象字段為大寫 》后端接受對象字段也為大寫 前后端對象字段一模一樣,就是接受不到前端傳過來的值,針對這種情況,只需在后端對象中加 @JsonProperty(\\\"Id\\\") 即可 如下所示: 1)通過 com.fasterxml.jackson.databind.ObjectMapper 去轉(zhuǎn)換,具體代碼如下 2、 第二種通過gson去轉(zhuǎn)

    2024年04月23日
    瀏覽(26)
  • 【Java 筆記】使用Fastjson2時,對象轉(zhuǎn)json首字母大小寫問題

    【Java 筆記】使用Fastjson2時,對象轉(zhuǎn)json首字母大小寫問題

    開發(fā)環(huán)境: 一、JSON 轉(zhuǎn) Object 1.問題: 2.解決方案 二、Object轉(zhuǎn) JSON 三、SpringBoot設(shè)置fastjson2 為默認(rèn) pom.xml 2. 配置類 四、FastJson2 注解 默認(rèn) 2. @JSONType 類注解 3. @JSONField(name = \\\"othername\\\") 屬性注解 五、思考問題 Java 對象為什么需要序列化? 為什么對象沒有實現(xiàn)Serializable接口,也可以

    2024年02月16日
    瀏覽(23)
  • 【mybatis-plus實體類復(fù)雜對象字段json自動相互轉(zhuǎn)換,以及自定義字段類型解析器】

    引言: mybatis-plus集合對象字段json如何自動進(jìn)行相互的轉(zhuǎn)換? 怎樣在使用mybatis-plus操作數(shù)據(jù)表的時候自動對實體類屬性進(jìn)行自動解析? 我們平時在做開發(fā)的時候,會遇到一個字段保存json串的情況。一般情況下mybatis-plus在做插入/更新之前將對象手動轉(zhuǎn)換成json串,查詢要用的時

    2023年04月13日
    瀏覽(17)
  • 使用Java反射針對對象字段比較。

    在Java開發(fā)中,我們經(jīng)常需要比較兩個對象的字段差異,尤其是在處理數(shù)據(jù)同步、狀態(tài)更新等場景中。本文介紹了如何使用Java反射和Stream API優(yōu)化對象字段比較的過程。 類型檢查 : 確保傳入的兩個對象屬于同一類型,否則拋出異常。 使用Stream API : 利用Stream API和Lambda表達(dá)式簡化

    2024年04月14日
    瀏覽(24)
  • Java中List對象集合按照對象中某字段進(jìn)行排序

    在Java中,可以使用List集合對象的sort(Comparator? super E c)方法,按照對象中某字段對List集合進(jìn)行排序 栗子: 打印輸出結(jié)果如下:

    2024年02月12日
    瀏覽(21)
  • Java對象中轉(zhuǎn)換空值的字段

    Java對象中轉(zhuǎn)換空值的字段

    在后端返回數(shù)據(jù)給前端時,公司的框架會把值為null的數(shù)據(jù)去掉,方便前端取值。 如:Person對象為:{name:\\\"浩二\\\", age:24, weight:null, height:114},那返回給前端的就為{name:\\\"浩二\\\", age:24, height:114}。 如果這個時候有個需求: ? Integer類型的字段為null給-1 ? Long類型的字段為null給-1L ? S

    2024年02月08日
    瀏覽(31)
  • JSON對象轉(zhuǎn)為Java類對象

    本文講述兩種方法,使JSON對象轉(zhuǎn)為Java類對象?;?FastJson1 對于以下的JSON對象: 假設(shè)以上的JSON對象已通過toJSONString()方法轉(zhuǎn)為String,那么有兩種方法可以將其轉(zhuǎn)為Java類對象, 前提是已定義一個YourClass類,其成員變量可以容納以上records內(nèi)的各個字段, 兩種轉(zhuǎn)換方法如下:

    2024年02月10日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包