2017-02-21 74 views
0

java newb在這裏。可能這已經在某個地方被覆蓋了,但我似乎無法找到它。 在Java 8 + Spring 4 + Jackson上的RESTish服務2.我想做的是將解組JSON轉換爲對象。它的工作原理只是用最少的設置罰款:防止Jackson unmarshaller在第一個數據類型不匹配時拋出異常

public class A { 
    private int id; 
    private double val; 

    getters/setters 
} 

然後,我有我的restcontroller:

@RestController 
@RequestMapping(value = "/item/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
public class MyController { 
    public A test(@Valid @RequestBody A a) { 
     return a; 
    } 
} 

如果我張貼有效的JSON

{"id": 1, "val":5.55} 

都是花花公子。如果我默認後

{"id": cat, "val":5.55} 

我得到的400響應我可以定義@ExceptionHandler處理HttpMessageNotReadableException,所以它會返回某種描述JSON的背部,指出錯誤。

問題是,如果我得到的JSON不止一個錯誤,如: {「ID」:貓,「VAL」:「狗」} 解組將拋出第一個節點上異常並停止解析,需要客戶可以逐個解決問題並重新發布它們,以獲得下一個錯誤響應。在這種特殊情況下,這可能不是問題,但在處理大型數據集時變得非常不可思議。所以我想以某種方式說服傑克遜領主在拋出異常之前解析整個事情。 建議?

回答

相關問題