我从数据提供者那里接收到一些字符串格式的JSON,据我所知,我可以使用类文件将JSON转换为POJO。数据提供程序提供
@JsonProperty
我已经成功地将JSON转换成POJO的类,我的问题是,是否只有一个嵌套的Java类包含所有的
@ JsonProperty
课堂?而不是有单独的类,其中有许多类。
Json String:
{
"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;
}
DATAKEY.Java
public class DataKeys
{
@JsonProperty("Vrm")
public String vrm;
}
请求程序
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;
}
爪哇
public class POJO {
@JsonProperty("BillingAccount")
public JSONSorter.BillingAccount billingAccount;
@JsonProperty("Request")
public JSONSorter.Request request;
}
理想解决方案:
如您所见,有一个JSonsorter类,它包含其他类。所以当创建pojo时,我会称之为public
JSONSorter.Request request;
而不是直接呼叫请求。这是一个理想的解决方案,因为请求类可能具有不同的属性,这取决于正在检索的数据集。因此,请求3不是拥有请求1、请求2,而是拥有JSonsorter1、JSonsorter2、JSonsorter3。每个类都包含要检索的数据所必需的类。
public class JSONSorter {
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;
}
public class DataKeys {
@JsonProperty("Vrm")
public String vrm;
}
public class BillingAccount {
@JsonProperty("AccountType")
public String accountType;
@JsonProperty("AccountBalance")
public double accountBalance;
@JsonProperty("TransactionCost")
public double transactionCost;
@JsonProperty("ExtraInformation")
public ExtraInformation extraInformation;
}
}