2013-05-22 6 views
5

Ich habe eine JSON-Datei zu analysieren, die wie folgt aussieht:Modellklasse für Jackson Parser zu Versalien- Eigenschaften

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

    } 
} 

Aber ich Eigenschaft nicht gefunden Fehler. Wenn ich es in Tiere (Kleinbuchstaben) ändere. es funktioniert gut. Kann mir jemand die Modellklasse für diese Beispiel-JSON-Datei vorschlagen, die korrekt analysiert wird.

Antwort

7

sollten Sie neue Benennungsstrategie implementieren für Ihren Fall:

class LowerCaseNamingStrategy extends LowerCaseWithUnderscoresStrategy { 

    private static final long serialVersionUID = 1L; 

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

Danach konfigurieren ObjectMapper

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

Siehe auch @JsonProperty Anmerkung.

+0

Vielen Dank für Ihre Antwort. Ich löste dieses Problem mit @ JsonProperty Annotation.Saw Ihre Antwort danach, aber da Sie die richtige Antwort gaben, werde ich es akzeptieren. :) –

3

Dank löste ich dieses Problem @JsonProperty Anmerkung

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

Gebäude weg von Deepak Antwort verwenden, je nachdem wie man Jackson konfiguriert haben, Sie kann Notwendigkeit zu setzen Die @JsonProperty auf die Getter & Setter anstelle der Eigenschaft oder Sie könnten doppelte Eigenschaften in der resultierenden JSON erhalten.

Beispiel

@JsonProperty("ANIMALS") 
private string animals; 

Ergebnisse in ... {animals:"foo",ANIMALS:"foo"}

private string animals; 

@JsonProperty("ANIMALS") 
public String getAnimals(){...} 

Ergebnisse in ... {ANIMALS:"foo"}

+0

du hast recht, nachdem ich die anmerkung auf die getter-methode gesetzt habe, produziert es nur das großbuch ... danke – danisupr4

+1

Sauber und geradlinig, danke –