2013-03-07 16 views
5

js MVC çerçevesi tarafından tüketilecek olan jersey REST hizmetinin POC'si üzerinde çalışıyorum. Formlardan biri üzerinde HTML formunu önceden doldurmak için kullanılacak UserProfile nesnesini (JSON JSON ile seri hale getirilmiş) döndürmem gerekiyor. Formun gönderilmesinde sunucuya yalnızca bir alt küme gönderilmelidir ("role" gibi bazı alanlar salt okunur ve değiştirilmemelidir), böylece JSON girişi UserProfileUpdateRequest nesnesine eşlenecektir. Sunucu kodu bakım açısından bakıldığında, UserProfileUpdateRequest UserProfile'ın bir alt kümesi olacağından, bu 2 nesne arasında bir ilişkinin olmasını isterim, bu nedenle ilk tercihim kompozisyon kullanmaktır: UserProfile UserProfileUpdateRequest içerir. Sorun, UserProfile JSON tarafından jackson'a serileştirildiğinde, başvurulan UserProfileRequest örneğinin tüm özellikleri userProfileRequest alanına sarılır - bu oldukça doğal gibi gözükür ancak JS kullanıcıları için kabul edilemez (veya en azından buna söylenmemiştir. kabul edilebilir). Jackson'u "düz" kök nesnesine zorlayabilmemin ve başvurulan nesnelerin özelliklerinin root altında serileştirilmesi gereken bir nokta var mı?jackson, başvurulan nesne alanlarını kök dizinine serileştirdi

{"role":"admin",...,"userProfileRequest":{"a":"...","b":"...",...}} 

ama Jackson 1.9.7 kullanıyorum

{"role":"admin",...,"a":"...","b":"...",...} 

almak istiyorum: UserProfile tefrika edildiğinde Küçük bir örnek

class UserProfileRequest{ 
private String a; 
private String b; 
... 
} 

class UserProfile{ 
private String role; 
... 
private UserProfileRequest userProfileRequest; 
} 

Yani ben aldım.

cevap

14

Sanırım @JsonUnwrapped ek açıklamasını arıyorsunuz.

class UserProfile{ 
    private String role; 
    ... 
    @JsonUnwrapped 
    private UserProfileRequest userProfileRequest; 
} 

Düzenleme: İşte @JsonUnwrapped in Jackson 1.9.9 link, bu yüzden de 1.9.7 kullanılabilir olmalıdır.

+0

THx somun gibi. Güzel çalışır. – user62058