2013-05-22 23 views
5

我有一個JSON文件,該文件是這樣的:傑克遜分析器Model類來解析大寫性能

{ 
    "ANIMALS": { 
    "TYPE": "MAMMAL", 
    "COLOR": "BLACK", 
    "HEIGHT": "45", 

    } 
} 

,但我得到找不到屬性錯誤。如果我將它改爲動物(小寫)。它工作正常。任何人都可以建議我這個樣本json文件的模型類,這將正確解析。

回答

7

你應該實施新的命名策略對於您的情況:

class LowerCaseNamingStrategy extends LowerCaseWithUnderscoresStrategy { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public String translate(String arg0) { 
     return arg0.toUpperCase(); 
    } 
} 

之後,配置ObjectMapper

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.setPropertyNamingStrategy(new LowerCaseNamingStrategy()); 

又見@JsonProperty註解。

+0

謝謝您的回答{animals:"foo",ANIMALS:"foo"}

private string animals; @JsonProperty("ANIMALS") public String getAnimals(){...} 

結果。我使用@JsonProperty註解解決了這個問題。在那之後查看你的答案,但既然你給出了正確的答案,我會接受它。 :) –

3

感謝我使用@JsonProperty註釋

@JsonProperty("ANIMALS") 
    private string animals; 
10

大廈關閉Deepak的答案的解決了這個問題,這取決於你已經配置傑克遜怎麼樣,你可能必要把在獲取者&設置器上的@JsonProperty而不是屬性,或者您可能在生成的JSON中獲得重複的屬性。

@JsonProperty("ANIMALS") 
private string animals; 

結果... ...在{ANIMALS:"foo"}

+0

你說得對,在我把註釋放在getter方法後,它只產生大寫字母......謝謝 – danisupr4

+1

乾淨而直截了當,謝謝 –