Java 为什么我的Spring项目返回的JSONArray文本必须以';1点?
我不熟悉Spring Boot和json,所以请原谅我提出了一个愚蠢的问题。我正在尝试读取我的json文件,将其转换为一个Java 为什么我的Spring项目返回的JSONArray文本必须以';1点?,java,json,spring,spring-boot,Java,Json,Spring,Spring Boot,我不熟悉Spring Boot和json,所以请原谅我提出了一个愚蠢的问题。我正在尝试读取我的json文件,将其转换为一个JSONObject,然后 将其转换为一个JSONArray。我已经注释掉了这两行代码 这是因为我尝试从读取文件到数组 JSON文件以[开头,因此我不确定为什么会出现此错误 线程“main”org.json.JSONException中的异常:JSONArray文本 必须在1[字符2第1行]处以“[”开头 rawJson.toString()不返回json内容,只返回的是的默
JSONObject
,然后
将其转换为一个JSONArray
。我已经注释掉了这两行代码
这是因为我尝试从读取文件到数组
JSON文件以[
开头,因此我不确定为什么会出现此错误
线程“main”org.json.JSONException中的异常:JSONArray文本
必须在1[字符2第1行]处以“[”开头
rawJson.toString()
不返回json内容,只返回的是的默认对象#toString()
方法的结果,使用
从类似的问题到-----包括堆栈traceNote,Spring Boot将包括现成的透明JSON支持,所以您不需要做任何事情,只需定义映射数据的Java类并将它们用作方法参数即可。
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
}
[
{
"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"
}
]
}
}
]
JsonReader jsonReader = Json.createReader(inputStream);
JsonArray array = jsonReader.readArray();
jsonReader.close();