2016-10-21 14 views
2

I found an answer похоже на этот вопрос, но он не работает при отправке данных JSON. У меня есть следующие:Контроллер весны Советы по обрезке данных JSON

@ControllerAdvice 
public class ControllerConfig { 

    @InitBinder 
    public void initBinder (WebDataBinder binder) { 
     StringTrimmerEditor stringtrimmer = new StringTrimmerEditor(true); 
     binder.registerCustomEditor(String.class, stringtrimmer); 
    } 
} 

Я знаю, что код в настоящее время достигается при связывании с помощью отладки, но когда я прохожу в данных, как:

{ "companyId": " ABC  "} 

ABC не фактически урезаны во время связывания. Я предполагаю, что это работает только с параметрами запроса, а не с сырыми органами JSON, но не уверен в этом. Если это так, есть ли что-то, что я могу сделать, это похоже?

+0

я думаю, что вы будете создавать Джексон десериализатор –

ответ

0

Создать этот JsonDeserializer

public class WhiteSpaceRemovalDeserializer extends JsonDeserializer<String> { 
    @Override 
    public String deserialize(JsonParser jp, DeserializationContext ctxt) { 
     // This is where you can deserialize your value the way you want. 
     // Don't know if the following expression is correct, this is just an idea. 
     return jp.getCurrentToken().asText().trim(); 
    } 
} 

и установить это в вашу собственность

@JsonDeserialize(using=WhiteSpaceRemovalSerializer.class) 
public void setAString(String aString) { 
    // body 
}