有誰知道Jackson2是否支持版本控制;類似於GSON的@Since
和@Until
註釋?Jackson 2版本支持
7
A
回答
2
不是直接。您可以使用@JsonView
或JSON過濾器功能來實現相似的包含/排除。
5
Jackson Model Versioning Module增加了版本控制支持,它滿足GSON的@Since和@Until超集。
比方說你有一個GSON標註型號:
public class Car {
public String model;
public int year;
@Until(1) public String new;
@Since(2) public boolean used;
}
使用的模塊,你可以把它轉換成以下傑克遜類級別的註解......
@JsonVersionedModel(currentVersion = '3', toCurrentConverterClass = ToCurrentCarConverter)
public class Car {
public String model;
public int year;
public boolean used;
}
...並寫入到當前版本的轉換器:
public class ToCurrentCarConverter implements VersionedModelConverter {
@Override
public ObjectNode convert(ObjectNode modelData, String modelVersion,
String targetModelVersion, JsonNodeFactory nodeFactory) {
// model version is an int
int version = Integer.parse(modelVersion);
// version 1 had a 'new' text field instead of a boolean 'used' field
if(version <= 1)
modelData.put("used", !Boolean.parseBoolean(modelData.remove("new").asText()));
}
}
現在只需將模塊配置爲Jackson ObjectMapper並對其進行測試即可。
ObjectMapper mapper = new ObjectMapper().registerModule(new VersioningModule());
// version 1 JSON -> POJO
Car hondaCivic = mapper.readValue(
"{\"model\": \"honda:civic\", \"year\": 2016, \"new\": \"true\", \"modelVersion\": \"1\"}",
Car.class
)
// POJO -> version 2 JSON
System.out.println(mapper.writeValueAsString(hondaCivic))
// prints '{"model": "honda:civic", "year": 2016, "used": false, "modelVersion": "2"}'
免責聲明:我是這個模塊的作者。有關更多功能的更多示例,請參閱GitHub項目頁面。我還編寫了使用該模塊的Spring MVC ResponseBodyAdvise。
相關問題
- 1. System.NotImplementedException:'不支持ID3v2版本2'。
- 2. Android支持版本
- 3. Jackson 2.x版本的所有下載
- 4. xpather版本支持Firefox 10.0.1版本
- 5. Java版本支持的Unicode版本6
- 6. Jackson庫版本confilct
- 7. PDFBOX支持的PDF版本
- 8. 老libconfig版本支持config_setting_get_string
- 9. 不支持HDF5版本
- 10. 支持的藍牙版本
- 11. Grails版本支持多久?
- 12. WebSphere多SSL版本支持
- 13. Cordova支持的Node.js版本
- 14. 支持舊版本的Flash?
- 15. 不支持節點版本?
- 16. SSI支持restlet SE版本
- 17. 不支持的AMF版本
- 18. Heroku支持SBT版本
- 19. new $ className(); php版本支持
- 20. 支持多個iOS版本
- 21. 支持舊版本的iOS
- 22. Solandra支持的Solr版本
- 23. Javascript庫版本支持
- 24. 支持多種xsd版本
- 25. Jackson JSON模式模塊是否不支持JSON Schema草稿版本4?
- 26. UWP不支持的測試版版本?
- 27. 是否支持更高版本的Android支持較低版本的Android設備
- 28. 支持它的Android版本的外部安裝,但支持那些不支持的版本
- 29. 支持.Net Framework 2的nhibernate的最新版本是什麼?
- 30. 統一python 2/3版本中的支持類型
嗨,你能否提供一些例子或者直接給我一些文檔?謝謝。 – Niranjan
Google是你的朋友;你可以試試這個:http://www.cowtowncoder.com/blog/archives/2011/02/entry_443.html或這個http://wiki.fasterxml.com/JacksonFeatureJsonFilter – StaxMan