2016-10-21 56 views
2

I found an answer與此問題類似,但發佈JSON數據時不起作用。我有以下幾點:Spring Controller建議修剪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 
}