【发布时间】:2019-01-28 20:46:54
【问题描述】:
我正在使用 GSON 解析 JSON 文件,但是当我打印封面数组中的元素时,我得到了 null 作为输出。
我需要coverName、coverID 和benefitsIncluded。
我确信我在某处做了一些愚蠢的事情。请查看相关文件。
request.json
{
"email": "someone@example.com",
"firstName": "someone",
"lastname": "",
"policyNumber": "PHD121213213123Q1",
"premiumAmount": "200.00",
"premiumFrequency": "Monthly",
"cover": [{
"coverName": "Child Critical Illness",
"coverID": 10000,
"benefitsIncluded": [
"Lump sum payment",
"No waiting period",
"Unlimited claim limit per policy owner"
]
},
{
"coverName": "Life Coverage",
"coverID": 10001,
"benefitsIncluded": [
"Lump sum benefit should the life insured pass away",
"Max of 1 Mn per Home Loan",
"Max 2 Mn per policy Owner",
"Up to $50k per account for each Credit Card and Personal Loan"
]
},
{
"coverName": "Critical Illness",
"coverID": 10002,
"benefitsIncluded": [
"lump sum payment of 12 monthly disability payment",
"max of 120K per home loan account",
"max of 50K per credit card and personal loan "
]
}
]
}
Insured.java
public class Insured {
private String email;
private String firstName;
private String lastname;
private String policyNumber;
private String applicationPageLink;
private String premiumAmount;
private String premiumFrequency;
private List<Cover> cover;
//Getters and Setters
Cover.java
public class Cover {
private String coverName;
private String coverId;
private List<String> Benefits;
//Getters and Setters
}
主要方法
public static void main( String[] args ) throws FileNotFoundException {
InputStream in = new FileInputStream("json file path");
BufferedReader buffer=new BufferedReader(new InputStreamReader(in));
Insured insured = new Gson().fromJson(buffer, Insured.class);
for (Cover cover : insured.getCover()) {
System.out.println(cover.getBenefits());
System.out.println(cover.getCoverId());
}
}
【问题讨论】:
-
在
Cover类中,将字段名称从Benefits更改为benefitsIncluded