From 2.4.5 to 2.7.1

在我們開發Rest API時,Jackson只不過是2.4.x版本而已;在我深入研究時,已經到2.7.1了,其間也只不過半年。但在深入研究時,卻發現介面與行為上的改變,因此做些記錄下來,讓大家可以參考。

這篇文章針對2.4.5到2.7.1,內容隨著開發遇到的問題持續增加:

VisibilityChecker

VisibilityChecker<?> checker = mapper.getVisibilityChecker().
		withGetterVisibility(Visibility.NONE).
		withIsGetterVisibility(Visibility.NONE);

在2.4.5版本可以這樣設定到ObjectMapper:

mapper.setVisibilityChecker(checker);

在2.6版本後,setVisibilityChecker被宣告為@Deprecated;在2.7.1版本可以改用:

mapper.setVisibility(checker);

FilterProvider

FilterProvider simpleFilter = new SimpleFilterProvider().addFilter(
		"simpleFilter", SimpleBeanPropertyFilter.filterOutAllExcept());

在2.4.5版本可以這樣設定到ObjectMapper:

mapper.setFilters(simpleFilter);

在2.6版本後,setFilters被宣告為@Deprecated;在2.7.1版本可以改用:

mapper.setFilterProvider(simpleFilter);

PropertyWriter & BeanPropertyWriter

2.7版本後,PropertyWriter支援isRequired(),可以取得JsonProperty所設定的required()內容。