当我使用org.json.simple.parser中的解析器时。*只要JSON中的某个值包含空格,我就会收到异常。例如:
{"name":"Adam"}
会正确解析,但
{"name":"Ad am"}
会导致“位置11处的意外令牌END OF FILE”异常
以下是我用来将JSON字符串转换为JSONObject的代码。
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringJSON);
答案 0 :(得分:0)
尝试通过以下示例进行操作,每个值包含space
除integer
之外的一个,并且仅因为您没有共享源代码而提供此示例。
JSON文件(personal_detail.json
):
{
"name":"arif mustafa",
"age":26,
"address":["district is Korba","state is Chhattisgarh","country is India"]
}
Java
来源阅读JSON
文件格式:
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();
}
}
}