【Java】json別名注解@JsonProperty


最近突然要用到Java屬性名與需要轉換的JSON字符串不一致的場景,於是上網查了下可用注解@JsonProperty和@JsonAlias

區別:

@JsonProperty:這個注解提供了序列化和反序列化過程中該java屬性所對應的名稱

@JsonAlias:這個注解只在反序列化時起作用,指定該java屬性可以接受的更多名稱

今天只談下@JsonProperty。

@JsonProperty添加在屬性上,並使用new ObjectMapper().writeValueAsString(object)轉換為別名的JSON字符串

Maven配置

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
<version>2.9.2<version>
</dependency>

Bean

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
public class FormFix {
    @JsonProperty("textField_kyk60fd5")
    private String empNo;
    @JsonProperty("textField_kyk60fd6")
    private String empName;
    @JsonProperty("selectField_kyk60fd7")
    private String situation;
    @JsonProperty("textareaField_kyk60fd8")
    private String comment;
}

測試代碼

import com.fasterxml.jackson.databind.ObjectMapper;

public
static void main(String[] args) throws JsonProcessingException { FormFix formFix = new FormFix(); formFix.setEmpNo("000001"); formFix.setEmpName("姓名"); formFix.setSituation("場景"); formFix.setComment("備注"); String s = new ObjectMapper().writeValueAsString(formFix); System.out.println(s); }

輸出

{"textField_kyk60fd5":"000001","textField_kyk60fd6":"姓名","selectField_kyk60fd7":"場景","textareaField_kyk60fd8":"備注"}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM