我收到了一些JSON在从数据提供一个字符串格式,从我的理解,我可以使用一个类文件中的JSON转换成POJO。数据提供商提供,我已经成功地使用了JSON成POJO的转换@JsonProperty
类。我的问题是,是否有可能有一个包含所有@JsonProperty
类只是一个嵌套的java类?而不是单独的类的,其中也有不少。
JSON字符串:
{
"BillingAccount": {
"AccountType": "Trial",
"AccountBalance": 999.99,
"TransactionCost": 999.99,
"ExtraInformation": {}
},
"Request": {
"RequestGuid": "abcde",
"PackageId": "abcde",
"PackageVersion": 2,
"ResponseVersion": 2,
"DataKeys": {
"Vrm": "example"
}
}
}
billing account.Java
public class BillingAccount
{
@JsonProperty("AccountType")
public String accountType;
@JsonProperty("AccountBalance")
public double accountBalance;
@JsonProperty("TransactionCost")
public double transactionCost;
@JsonProperty("ExtraInformation")
public ExtraInformation extraInformation;
}
data keys.Java
public class DataKeys
{
@JsonProperty("Vrm")
public String vrm;
}
request.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;
}
PO Jo.Java
public class POJO {
@JsonProperty("BillingAccount")
public JSONSorter.BillingAccount billingAccount;
@JsonProperty("Request")
public JSONSorter.Request request;
}
理想的解决方案:
正如你可以看到有容纳其他类的JSONSorter类。因此,在创建POJO时,我会叫公共JSONSorter.Request request;
而不是调用只是请求。原因这是一个理想的解决方案是因为Request类可以有根据正在检索什么数据集不同的属性。因此,而不是Request1,请求2的,Request3岂不是更好有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;
}
}
你理想的解决方案应该工作。唯一缺少的唯一的事情是使内部类是静态的。他们必须是静态的,这样你的JSON解串器可以在不需要将其连接到JSONSorter现有实例实例化它们。