我想知道是否有可能将json字符串反序列化为没有注解的类对象。
假设我没有json模式,也不能生成pojo类,但我已经有了没有注解的类。反序列化程序是否可以自动检测类属性和子类属性?
我一直在互联网上寻找解决方案,但所有的解决方案都涉及到没有子类作为属性的类。在我的例子中,我有一个复杂的类结构,属性名也与json字符串中的元素名相同或相似。
我还尝试根据json字符串生成类。我使用jsonschema2pojo实现了这一点,但问题是我的pojo类只包含json字符串中列出的元素,因此它们没有完全生成。没有json方案,我无法生成它们。
1条答案
按热度按时间6ovsh4lw1#
是的,您可以在不使用jackson注解的情况下序列化/反序列化类型。这在本教程中得到了明确的演示:
以及:
如果需要自定义不带注解的类型序列化(因为您不控制这些类,或者因为您不想用jackson注解或任何其他原因污染它们),请使用mixin。使用它,您可以定义一个与要在其中序列化/反序列化和定义注解的类型具有相同属性名称的类型。然后指示jackson(反)序列化一个对象,但使用mixin中的配置:
查看完整文档以了解其他有趣的功能。
现在,如果属性名称不匹配,则使用
@JsonProperty
并为其指定json属性的名称。因此,继续上面的示例,假设要(反)序列化到的jsonCannotModify
详情如下:只需将mixin注解为: