ジャクソン2がバージョン管理をサポートしているかどうかは誰にも知られています。 GSONの@Since
と@Until
注釈に類似したものはありますか?ジャクソン2のバージョン管理
7
A
答えて
2
直接ではありません。類似の包含/除外を実装するには@JsonView
またはJSONフィルタ機能を使用できます。
5
Jackson Model Versioning Moduleには、GSONの@Sinceと@Untilのスーパーセットを満たすバージョン対応が追加されています。
あなたはGSON、注釈付きモデル考えてみましょう:
@JsonVersionedModel(currentVersion = '3', toCurrentConverterClass = ToCurrentCarConverter)
public class Car {
public String model;
public int year;
public boolean used;
}
...モジュールを使用して
public class Car {
public String model;
public int year;
@Until(1) public String new;
@Since(2) 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. バージョン管理メジャーリリース
- 2. Avaya PBXのバージョン管理/設定管理?
- 3. ワードドキュメントのバージョン管理
- 4. Javadocのバージョン管理
- 5. シェルスクリプトのバージョン管理
- 6. ドメインモデルのバージョン管理
- 7. Yoctoのバージョン管理
- 8. テストケースのバージョン管理
- 9. バージョン管理のプラクティス
- 10. リソースファイルのバージョン管理
- 11. バージョン管理/構成管理for Linuxイメージ
- 12. バージョン管理戦略
- 13. バージョン管理DTOベストプラクティス
- 14. Servicestack Nugetバージョン管理
- 15. XMLバージョン管理アルゴリズム
- 16. MySQLバージョン管理 - Subversion
- 17. バージョン管理システムc#
- 18. TFSバージョン管理オフライン
- 19. Mongoidバージョン管理スコープ
- 20. 動的バージョン管理
- 21. WCF - バージョン管理(例)
- 22. 私のアプリケーションのバージョン管理
- 23. ウェブサイトのバージョン管理のプラクティス
- 24. テキストデータのバージョン管理のベストプラクティス
- 25. データベースのバージョン管理のアドバイス
- 26. バージョン管理のバージョン固有ファイル
- 27. Web開発バージョン管理 - 複数のバージョン
- 28. CLIと.NETのバージョン管理
- 29. Oracle 10g Expressのバージョン管理
- 30. newbのNetBeansバージョン管理?
こんにちは、いくつかの例を教えてください。ありがとうございました。 – Niranjan
Googleはあなたの友人です。あなたはこれを試すことができます:http://www.cowtowncoder.com/blog/archives/2011/02/entry_443.htmlまたはこのhttp://wiki.fasterxml.com/JacksonFeatureJsonFilter – StaxMan