有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

对象反序列化的java Boon JSON更改字段名

我正在使用Boon JSON,我想更改从JSON生成的类上的字段的名称

我只想换衣服

{"first_name": "Cristine", "last_name": "McVie"}

因此,它映射到Java字段:

String firstName;
String lastName;

我已经完成了所有工作(即,如果我在JSON中使用camel case,那么对象的创建是正确的)


我尝试了@JsonPropery和(根据评论中的建议)类上的@Named注释,如下所示:

public class Person {
    @Named("first_name")
    private String firstName;
    @Named("first_name")
    public String getFirstName() {
        return firstName;
    }
    @Named("first_name")
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

只是为了启发,这就是为什么我一开始没有看到@JsonProperty起作用的原因。这个应用程序正在Eclipse调试模式下运行,我相信Eclipse会重新部署更新的代码,但是添加注释显然不足以触发更新。必须重新启动应用程序才能启动它


共 (1) 个答案

  1. # 1 楼答案

    您需要向字段添加SerializedName注释(如GSON)或JsonProperty注释(如Jackson),如下所示:

    import org.boon.json.annotations.JsonProperty;
    import org.boon.json.annotations.SerializedName;
    
    public static class Person {
        @SerializedName("first_name")
        String firstName;
    
        @JsonProperty("last_name")
        String lastName;
    }
    

    您可以看到另一个示例in the documentation