2013-05-22 9 views
5

Mam plik json który wygląda tak:klasa Wzór Jackson Parser do analizowania właściwości UPPERCASE

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

    } 
} 

Ale pojawia nieruchomość nie znaleziono błąd. Jeśli zmienię to na zwierzęta (małe litery). to działa dobrze. Czy ktoś może zaproponować mi klasę modelu dla tego przykładowego pliku json, który zostanie poprawnie przeanalizowany.

Odpowiedz

7

należy wdrożyć nową strategię nazewnictwa dla przypadku:

class LowerCaseNamingStrategy extends LowerCaseWithUnderscoresStrategy { 

    private static final long serialVersionUID = 1L; 

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

Po tym, skonfigurować ObjectMapper

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

Zobacz także @JsonProperty adnotacji.

+0

Dzięki za odpowiedź. Rozwiązałem ten problem, używając adnotacji @JsonProperty. Odtąd odpowiedz, ale ponieważ podałeś właściwą odpowiedź, zaakceptuję to. :) –

3

Dzięki mogę rozwiązać ten problem za pomocą @JsonProperty Adnotacja

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

Building off odpowiedź Deepak, w zależności od tego jak masz Jackson skonfigurowaniu może potrzeby umieszczania @JsonProperty dla zestawów pobierających zamiast właściwości lub możesz uzyskać zduplikowane właściwości w wynikowym JSON.

Przykład

@JsonProperty("ANIMALS") 
private string animals; 

Wyniki w ... {animals:"foo",ANIMALS:"foo"}

private string animals; 

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

Wyniki w ... {ANIMALS:"foo"}

+0

masz rację, po umieszczeniu adnotacji na metodzie gettera, powstaje tylko wielka ... dziękuję – danisupr4

+1

Czyste i proste do przodu, dzięki –

Powiązane problemy