2015-10-24 115 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