You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用org.json.simple.parser解析含空格JSON值时遇EOF异常求助

解决org.json.simple解析含空格JSON值时的END OF FILE异常

首先,正常情况下org.json.simple的JSONParser是完全支持解析值中包含空格的JSON的——比如{"name":"Ad am"}是标准合法的JSON,理论上不会抛出异常。你遇到的"unexpected token END OF FILE at position 11"错误,大概率是传入的JSON字符串本身不完整或者被错误处理了,而非空格的问题。

可能的原因及解决办法:

  • JSON字符串被截断:检查你传入的stringJSON是否完整。比如如果实际传递的字符串是"{\"name\":\"Ad am"(缺少了结尾的"}),就会触发这个异常。建议在解析前先打印输出stringJSON的完整内容,确认它是符合JSON规范的完整字符串。
  • 字符串转义错误:在Java中直接写JSON字符串时,要注意双引号的转义。正确的写法应该是:
    String stringJSON = "{\"name\":\"Ad am\"}";
    
    如果转义错误,可能会导致实际传递的字符串不符合JSON格式。
  • 依赖版本过旧:某些早期版本的org.json.simple可能存在边缘场景的解析bug。建议升级到最新稳定版本(比如1.1.1及以上),可以通过Maven或Gradle更新依赖:
    Maven依赖示例:
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>
    

验证解析的正确示例代码:

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonTest {
    public static void main(String[] args) {
        String validJson = "{\"name\":\"Ad am\"}";
        JSONParser parser = new JSONParser();
        try {
            JSONObject json = (JSONObject) parser.parse(validJson);
            System.out.println("解析成功:" + json.get("name")); // 输出Ad am
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

如果按照上述步骤检查后仍然有问题,建议捕获异常时打印出完整的stringJSON内容,这样更容易定位具体哪里出了问题。

内容的提问来源于stack exchange,提问作者kyczawon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:32:04