Java 从第三方库反序列化类

Java 从第三方库反序列化类,java,gson,Java,Gson,反序列化映射到第三方库中实现类的JSON的推荐方法是什么?库只将类的接口返回给用户,因此gson无法在我不提供实现类名称的情况下构造对象。问题是,如果库中返回对象的方法更改了实现类,它将破坏反序列化代码 Class CustomAddress { private Address localAddress; } Address是一个接口,localAddress使用库中的返回值进行设置。您可以利用它,因为它正是为此而设计的—将JSON映射到类似JavaBean的接口定义。但这也可能是过火了,

反序列化映射到第三方库中实现类的JSON的推荐方法是什么?库只将类的接口返回给用户,因此gson无法在我不提供实现类名称的情况下构造对象。问题是,如果库中返回对象的方法更改了实现类,它将破坏反序列化代码

Class CustomAddress {

private Address localAddress;

}

Address是一个接口,localAddress使用库中的返回值进行设置。

您可以利用它,因为它正是为此而设计的—将JSON映射到类似JavaBean的
接口
定义。但这也可能是过火了,这取决于您的数据结构有多复杂,您自己创建类可能会更容易……谢谢您Boris,是的,这是过火了,只需要一个地方。我能想到的唯一选择是再次使用库创建一个对象,并从返回的对象中找出类名。我不明白为什么需要这样做。创建一个实现
接口的简单JavaBean。完成。我不确定我是否理解该评论。您能给出简单的示例代码吗?考虑是否将JSON直接绑定到第三方。如您所述,对第三方的任何更改都需要更改服务器。但是,所有生成JSON的客户端也必须更改。您可以利用它,因为它正是为这种目的而设计的—将JSON映射到类似JavaBean的
接口
定义。但这也可能是过火了,这取决于您的数据结构有多复杂,您自己创建类可能会更容易……谢谢您Boris,是的,这是过火了,只需要一个地方。我能想到的唯一选择是再次使用库创建一个对象,并从返回的对象中找出类名。我不明白为什么需要这样做。创建一个实现
接口的简单JavaBean。完成。我不确定我是否理解该评论。您能给出简单的示例代码吗?考虑是否将JSON直接绑定到第三方。如您所述,对第三方的任何更改都需要更改服务器。但是,生成JSON的所有客户端也必须更改。