2013-05-07 2 views
2

Я использую Spring 3.2, а мой Spring MVC-контроллер генерирует данные JSON (с jackson-databind-2.2.0). Я хотел бы настроить свое корневое имя JSON с помощью аннотации @JsonRootName (com.fasterxml.jackson.annotation.JsonRootName), однако я не мог понять, как включить его с настройкой Spring.Как включить @JsonRootName весной mvc 3.2

@JsonRootName("rootNameTest") 
public class MyModel { 
    private String prop; 
    public String getProp() { 
     return prop; 
    } 
    public void setProp(String prop) { 
     this.prop = prop; 
    } 
} 

Вот мои настройки в sevlet-context.xml

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="order" value="1" /> 
    <property name="contentNegotiationManager"> 
     <bean class="org.springframework.web.accept.ContentNegotiationManager"> 
      <constructor-arg> 
       <bean class="org.springframework.web.accept.ParameterContentNegotiationStrategy"> 
        <constructor-arg> 
         <map> 
          <entry key="json" value="application/json"/> 
         </map> 
        </constructor-arg> 
       </bean> 
      </constructor-arg> 
     </bean> 
    </property> 
    <property name="defaultViews"> 
     <list> 
      <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/> 
     </list> 
    </property> 
</bean> 

Пожалуйста, помогите. Благодарю.

ответ

3

Setbelow в com.fasterxml.jackson.databind.ObjectMapper

om.configure (DeserializationFeature.UNWRAP_ROOT_VALUE, правда); om.configure (SerializationFeature.WRAP_ROOT_VALUE, true);

это может быть сделано путем расширения выше класса с вашей таможней и ввести в org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

Смежные вопросы