使用嵌套类将 JSON 转换为 POJO

我从数据提供者那里收到了一些字符串格式的 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.java


public class BillingAccount

{

    @JsonProperty("AccountType")

    public String accountType;

    @JsonProperty("AccountBalance")

    public double accountBalance;

    @JsonProperty("TransactionCost")

    public double transactionCost;

    @JsonProperty("ExtraInformation")

    public ExtraInformation extraInformation;

}

数据键.java


public class DataKeys

{

    @JsonProperty("Vrm")

    public String vrm;

}

请求.java


public 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.java


public 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。其中每一个都将包含要检索的数据所需的类。


动漫人物
浏览 203回答 1
1回答

POPMUISE

您理想的解决方案应该有效。唯一缺少的是使内部类静态。它们必须是静态的,以便您的 JSON 反序列化程序可以实例化它们,而无需将它们附加到 JSONSorter 的现有实例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java