将 JSON 反序列化为现有对象 (Java)
2022-08-31 20:55:36
我想知道如何让 Jackson JSON 库将 JSON 反序列化为现有对象?我试图找到如何做到这一点;但它似乎只能接受一个类并自行实例化。
或者,如果不可能,我想知道是否有任何Java JSON反序列化库可以做到这一点。
这似乎是C#的相应问题:将数据从JSON字符串覆盖到现有对象实例。似乎 JSON.NET 有一个填充对象(字符串,对象)。
我想知道如何让 Jackson JSON 库将 JSON 反序列化为现有对象?我试图找到如何做到这一点;但它似乎只能接受一个类并自行实例化。
或者,如果不可能,我想知道是否有任何Java JSON反序列化库可以做到这一点。
这似乎是C#的相应问题:将数据从JSON字符串覆盖到现有对象实例。似乎 JSON.NET 有一个填充对象(字符串,对象)。
如果你可以使用另一个库而不是 Jackson,你可以尝试 Genson http://owlike.github.io/genson/。除了其他一些不错的功能(例如使用不带任何注释的非空构造函数进行反序列化,反序列化为多态类型等),它还支持将JavaBean反序列化为现有实例。下面是一个示例:
BeanDescriptorProvider provider = new Genson().getBeanDescriptorFactory();
BeanDescriptor<MyClass> descriptor = provider.provide(MyClass.class, genson);
ObjectReader reader = new JsonReader(jsonString);
MyClass existingObject = descriptor.deserialize(existingObject, reader, new Context(genson));
如果您有任何疑问,请不要犹豫,使用其邮件列表 http://groups.google.com/group/genson。