當使用 Spring 的 MVC 嘗試返回 JSON 的過程中刁俭,碰到了一個奇怪的問題赞季,我在 Spring boot 的程序里沈跨,@RestControler 的類篮奄,直接返回 Iterable 類型的對象展氓,是 Ok穆趴,但在另一個存 Spring 的程序里就只返回了空值。
嘗試更新版本等方法無效以后遇汞,通過調試終于發(fā)現(xiàn)了原因未妹。Spring 注冊 MessageConverter 的時候,會判斷是否存在 jackson-databind, 如果不存在空入,會嘗試使用 gson 來進行 json 的序列化络它,而 gson 貌似無法序列化 Iterable 類型的對象。
所以歪赢,解決方式就是在 Gradle 里化戳,加入對 jackson 的引用:
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.6'
PS:我準備去 gson 提個 issues , 看看能否搞定這個 bug.