![](/img/trans.png)
[英]Unexpected token END OF FILE at position while parsing BufferedReader to JSON Object
[英]A space in JSON value causes “unexpected token END OF FILE at position 11” exception when parsing in Java
當我使用來自org.json.simple.parser。*的解析器時,只要JSON中的值之一包含空格,就會出現異常。 例如:
{"name":"Adam"}
會正確解析,但是
{"name":"Ad am"}
會導致“位置11處的令牌意外結束”
這是我用來將JSON字符串轉換為JSONObject的代碼。
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringJSON);
嘗試遍歷下面的示例,每個值都包含除integer
1以外的space
,並僅由於未共享源代碼而給出此示例。
JSON文件( personal_detail.json
):
{
"name":"arif mustafa",
"age":26,
"address":["district is Korba","state is Chhattisgarh","country is India"]
}
讀取JSON
文件格式的Java
源代碼:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JSONExample {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("src/resources/personal_detail.json"));
JSONObject jsonObject = (JSONObject) obj;
System.out.println(jsonObject + "\n");
String name = (String) jsonObject.get("name");
System.out.println("name : " + name);
long age = (Long) jsonObject.get("age");
System.out.println("age : " + age);
//get Object loop array
JSONArray address = (JSONArray) jsonObject.get("address");
System.out.println("address is : ");
Iterator<String> iterator = address.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.