gpt4 book ai didi

java - 带有版本控制的 json 数据存储

转载 作者:行者123 更新时间:2023-11-29 08:59:25 25 4
gpt4 key购买 nike

问题定义:

有一个 Java 服务器存储可以映射到 Java 类的 JSON 数据。 Java 类可能会发生变化。目标是能够更新 Java 类,并且仍然能够将旧版本的 JSON 数据解码为新版本的 Java 对象。应该有一个好的版本控制系统。例如,使用默认值向 Java 类添加新字段的能力。如果旧的JSON数据没有这个字段,Java对象可以使用这个字段的默认值。

问题:

我错过了什么吗?是否有其他库具有更好的版本控制支持?

  • 应该如何存储 JSON 数据?

我看到两个选项。选项 1:我可以将那些 JSON 文件(如果它们具有相同的版本,则它们具有共同的结构)分别存储在一个文件夹中。例如我有 2 个文件:json/j1.json 和 json/j2.json。选项 2:我可以使用 NoSQL 数据库,例如 MongoDB。但这比以前的选择有优势吗?在 DBCollection 中请求 BasicDBObject 毫无意义,因为我需要它才能将其转换为另一个 Java 类。对于这种情况,建议使用哪个选项?也许另一种选择更合适?

最佳答案

在撰写本文时 (2.9.x) 没有内置的 Jackson 支持,但是,Jackson Model Versioning Module添加版本控制支持,可用于在映射到 POJO 之前将旧版本的 JSON 模型转换为当前版本(反之亦然)。

请参阅我在 Jackson 2 support for versioning 上的回答有关如何将 GSON 的基本版本控制功能映射到此模块的示例。查看module's GitHub page有关完整功能的示例。

免责声明:我是该模块的作者。我也写了一个Spring MVC ResponseBodyAdvise用于使用该模块。

关于java - 带有版本控制的 json 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18447117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com