我是Spring Boot和json的新手,所以如果有一个愚蠢的问题,请原谅我。我正在尝试读取json文件,将其转换为JSONObject
,然后
将此转换为JSONArray
。我已经注释掉了两行
这是我尝试从读取文件到数组的尝试。我的
JSON文件以[
开头,所以我不确定为什么会收到此错误。
线程“ main” org.json.JSONException中的异常:JSONArray文本 必须以[[]在1 [字符2第1行]开头
InputStream inputStream = TypeReference.class.getResourceAsStream("/json/req.json");
List<PIECase> allCases = new ArrayList<PIECase>();
InputStream rawJson = inputStream;
//JSONObject jsonObject = new JSONObject(rawJson);
//JSONArray jsonArray = jsonObject.getJSONArray("PIECases");
JSONArray jsonArray = new JSONArray(rawJson.toString());
for(int i =0; i < jsonArray.length(); i++) {
//the JSON data we get back from array as a json object
JSONObject jsonPIECases = jsonArray.getJSONObject(i);
// more code
}
req.json
[
{
"PIECases": {
"PIECases": [
{
"Case_ID": "1",
"SortCode": "123456",
"AccountNumber": "12345678",
"Amount": "50",
"DateOfPayment": "2019-07-29"
},
{
"Case_ID": "2",
"SortCode": "123456",
"AccountNumber": "12345678",
"Amount": "50",
"DateOfPayment": "2019-07-29"
}
]
}
}
]
答案 0 :(得分:1)
rawJson.toString()
不返回json内容,而仅返回InputStream
的默认Object#toString()
方法的结果,使用;
JsonReader jsonReader = Json.createReader(inputStream);
JsonArray array = jsonReader.readArray();
jsonReader.close();