java - Java 解析时 JSON 值中的空格导致 "unexpected token END OF FILE at position 11"异常

标签 java json parsing

当我使用 org.json.simple.parser.* 中的解析器时,只要 JSON 中的值之一包含空格,我就会收到异常。例如:

{"name":"Adam"}

可以正确解析,但是

{"name":"Ad am"}

会导致“位置 11 出现意外的标记文件结束”异常

这是我用来将 JSON 字符串转换为 JSONObject 的代码。

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringJSON);

最佳答案

尝试完成下面的示例,每个值都包含除整数 1 之外的空格,并给出此示例只是因为您没有共享源代码。

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();
        }

    }
}

关于java - Java 解析时 JSON 值中的空格导致 "unexpected token END OF FILE at position 11"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48246149/

相关文章:

java - Google Java格式+验证Google Java格式组合无效

javascript - Selenium IE 驱动程序在 window.open() 上打开新窗口而不是新选项卡

java - JButton 数组返回 void

python - 将 csv 文件作为 float 读取到 pandas 数据帧

python - 无法在 python 中解析 json,但可以在 json 查看器中查看文本

java - 这些是编码吗?

java - 使用 Eventful API[JSON] 未获得结果

javascript - 如何使用javascript获取json对象属性

php - json 响应中不需要的方括号

parsing - 正则表达式用于在纯文本电子邮件中查找内嵌图像