首页 > 解决方案 > 将 Json 反序列化为 Object 的通用方法

问题描述

这是一个具体的问题,我无法在Gson的 javadoc 中获得有关此主题的任何信息。


目前,我正在尝试将 Json(1) 解析{ "foo":"bar", "bar":"foo" }为 Object Entity。通常我会将这些值映射到Entity带有字段foo和的对象bar,但是我希望更加独立于 API。


对于(1)我有

public class Entity {
String foo;
String bar;
}

但是如果我们测试另一个端点,生成的 Json (2) 看起来像

{ "notFoo":"bar", "notBar":"foo" }

这使我以前构造的Entity 无用,我需要为此创建一个具有相应字段的新类。


所以我的实际问题是:

  1. 是否有一种通用(比我的示例更通用)的方法将 Json 推入GenericEntity->即使使用不同的端点,json 的g.fromJson(response.getBody(),GenericEntity.class);每个字段都将被成功映射?

  2. 或者,是否有其他依赖项支持开箱即用?

标签: javajsonparsinggenericsgson

解决方案


您可以使用每个字段的 Multiple GSON @SerializedName@serializedName中编写的注释吗?. 但是架构必须相同,您只有键名的替代品。


推荐阅读