2015-10-24 73 views
3

我正在使用Boon JSON,我想更改从JSON生成的类的字段名称。Boon JSON - 更改对象反序列化的字段名称

我只是想改变

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

所以它映射到Java领域:

String firstName; 
String lastName; 

我已经把一切都工作(即,如果我在JSON使用驼峰,正确创建的对象。


我已经试过@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会重新部署更新的代码,但添加注释显然不足以触发更新。不得不重新启动应用程序来捡起它。

+0

您是否尝试过用'@ Named'注释字段?例如。 '@Named(“first_name”)' – alexvetter

+0

刚刚尝试过,谢谢你的建议。更新的问题。 – mtyson

回答

2

您需要添加或者是SerializedName注释(如GSON)或JsonProperty注释(如杰克逊)到田间地头,像这样:

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

+0

嗯,我曾试过'@ JsonProperty',让我看看更多。谢谢。 – mtyson

+0

好的,再试一次,它工作 - 谢谢。感谢指引我到文档中的正确位置,我似乎无法找到它(并且TOC链接似乎已关闭) – mtyson