gpt4 book ai didi

java - 从 JSONObject 检索时 JSONArray 为 null

转载 作者:行者123 更新时间:2023-12-02 11:31:26 28 4
gpt4 key购买 nike

我有一个 JSON:

{
"Bills": {
"name": "Mr.X",
"creditCardNumber": "1234567890",
"billDetails": [{
"PaymentDueDate": "07-03-2018",
"StatementDate": "24-02-2018",
"AmountDue": "2156"
},
{
"PaymentDueDate": "05-02-2018",
"StatementDate": "23-01-2018",
"AmountDue": "3256"
},
{
"PaymentDueDate": "07-01-2018",
"StatementDate": "24-12-2017",
"AmountDue": "1132"
},
{
"PaymentDueDate": "07-12-2017",
"StatementDate": "24-10-2017",
"AmountDue": "7654"
}
]
}
}

我正在尝试读取 JSON 对象,但 JSONArray 为 null,即 billDetailsArr

 public static void readJSONFile() throws java.text.ParseException {
JSONParser parser = new JSONParser();


JSONObject data;
try {
data = (JSONObject) parser.parse(new FileReader("\\Bills.json"));
JSONArray billdetailsArr = (JSONArray) data.get("billDetails");

for(int i=0;i<data.size();i++)
{

JSONObject jsonobj_2 = (JSONObject) billdetailsArr.get(i);
String dateStr = (String) jsonobj_2.get(new Date("StatementDate"));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date StatementDate = sdf.parse(dateStr);
}
}

我的 POJO 类是:

public class BillDetails {

private Date PaymentDueDate;
private Date StatementDate;
private String AmountDue;
}

我想要 StatementDate 和 PaymentDueDate 采用日期格式而不是字符串。我的代码正确吗?

最佳答案

billsDetails 数组不是根元素的属性 - 它是 bills 元素中的一个元素。因此,您需要获取 bills 元素,然后获取 billsDetail 数组。

例如

data = (JSONObject) parser.parse(new FileReader("\\Bills.json"));
JSONObject billsObj = (JSONObject)data.get("bills");
JSONArray billdetailsArr = (JSONArray)billsObj.get("billDetails");

关于java - 从 JSONObject 检索时 JSONArray 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com