为了账号安全,请及时绑定邮箱和手机立即绑定

使用嵌套类将 JSON 转换为 POJO

使用嵌套类将 JSON 转换为 POJO

动漫人物 2022-06-08 17:23:00
我从数据提供者那里收到了一些字符串格式的 JSON,据我了解,我可以使用类文件将 JSON 转换为 POJO。数据提供者提供了@JsonProperty我设法将 JSON 转换为 POJO 的类。我的问题是,是否可能只有一个包含所有类的嵌套 java@JsonProperty类?而不是有单独的类,其中有很多。json字符串:{    "BillingAccount": {        "AccountType": "Trial",        "AccountBalance": 999.99,        "TransactionCost": 999.99,        "ExtraInformation": {}    },    "Request": {        "RequestGuid": "abcde",        "PackageId": "abcde",        "PackageVersion": 2,        "ResponseVersion": 2,        "DataKeys": {            "Vrm": "example"        }    }}BillingAccount.javapublic class BillingAccount{    @JsonProperty("AccountType")    public String accountType;    @JsonProperty("AccountBalance")    public double accountBalance;    @JsonProperty("TransactionCost")    public double transactionCost;    @JsonProperty("ExtraInformation")    public ExtraInformation extraInformation;}数据键.javapublic class DataKeys{    @JsonProperty("Vrm")    public String vrm;}请求.javapublic class Request{    @JsonProperty("RequestGuid")    public String requestGuid;    @JsonProperty("PackageId")    public String packageId;    @JsonProperty("PackageVersion")    public int packageVersion;    @JsonProperty("ResponseVersion")    public int responseVersion;    @JsonProperty("DataKeys")    public DataKeys dataKeys;}POJO.javapublic class POJO {    @JsonProperty("BillingAccount")    public JSONSorter.BillingAccount billingAccount;    @JsonProperty("Request")    public JSONSorter.Request request;}理想解决方案:如您所见,JSONSorter 类包含其他类。所以在创建 POJO 时,我会调用 publicJSONSorter.Request request;而不是只调用 Request。这是一个理想解决方案的原因是因为 Request 类可能具有不同的属性,具体取决于正在检索的数据集。因此,与其拥有 Request1、Request2、Request3,不如拥有 JSONSorter1、JSONSorter2、JSONSorter3。其中每一个都将包含要检索的数据所需的类。
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您理想的解决方案应该有效。唯一缺少的是使内部类静态。它们必须是静态的,以便您的 JSON 反序列化程序可以实例化它们,而无需将它们附加到 JSONSorter 的现有实例。



查看完整回答
反对 回复 2022-06-08
  • 1 回答
  • 0 关注
  • 202 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信