2011-10-25 10 views
11

Używam MappingJacksonJsonView do serializowania JSON klasy, jednak chciałbym móc zmienić nazwę niektórych pól od domyślnej nazwy na podstawie nazwy pobierającego.Zmień nazwę pól JSON używanych przez MappingJacksonJsonView na wiosnę

To dlatego, że muszę wypisać nazwy pól, takie jak "delete_url" i "delete_type" dla przesłania pliku jQuery. Używam @ jsonserialize adnotacji do ręcznego wybierania pól do serializacji.

@JsonAutoDetect(getterVisibility = Visibility.NONE) 
public interface Picture { 

    @JsonSerialize 
    String getName(); 

    @JsonSerialize 
    String getDelete_url(); 

    ... 

Na przykład, jestem zmuszony do wywołania metody getDelete_url(), a chciałbym go getDeleteUrl() nazwać, ale nadal wyjście kluczem "delete_url" podczas szeregowania do JSON.

Odpowiedz

22

Powinieneś być w stanie zakwalifikować się przy użyciu @JsonProperty.

@JsonAutoDetect(getterVisibility = Visibility.NONE) 
public interface Picture { 

    @JsonSerialize 
    @JsonProperty("name") 
    String getName(); 

    @JsonSerialize 
    @JsonProperty("delete_url") 
    String getDeleteUrl(); 

    //... 
+0

Tworzę serwis internetowy przy użyciu Spring MVC, który po prostu zwraca json reposne. To nie działa w moim przypadku. Podaje tylko nazwę pola. – Badal

8

Czy próbowali za pomocą @JsonProperty adnotacji?

"Określa nazwę właściwości logicznej, tj. Nazwę pola obiektu Json do użycia dla właściwości: jeśli pusty ciąg (który jest domyślny), użyje nazwy pola z adnotacjami."