Java教程

【Java】json别名注解@JsonProperty

本文主要是介绍【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":"备注"}

 

这篇关于【Java】json别名注解@JsonProperty的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!