com.alibaba.fastjson2.JSONException: offset 1, character <, line 1, column 1, fastjson-version 2.0.5
此异常的根本原因是 输入数据不符合 JSON 格式。数据来源可靠(正确 URL + 返回 JSON 格式)。解析前验证原始内容(避免处理错误页面)。通过检查网络响应和修复请求逻辑,即可解决该问题。
·
这个异常是 Alibaba FastJSON2 解析 JSON 数据时抛出的错误,具体原因是解析器在数据的起始位置(第 1 行第 1 列) 发现了无效字符 <。以下是详细分析和解决方案:
异常原因
-
无效的起始字符
异常明确提到character <,表示解析器期望收到一个有效的 JSON 开头(例如{或[),但实际收到的第一个字符是<(通常是 XML/HTML 的起始符号)。 -
非 JSON 数据
最可能的情况是:- 你尝试解析的数据不是 JSON 格式(例如服务器返回了 XML、HTML 或纯文本)。
- 常见场景:
- API 请求返回了 错误页面(如 404/500 的 HTML 页面)。
- 请求未正确设置
Content-Type头,导致服务器返回了默认格式(如 XML)。 - 网络层拦截(如代理、防火墙)返回了非 JSON 响应。
-
数据来源问题
如果数据来自 HTTP 请求:- URL 错误(请求了非 API 地址)。
- 身份认证失败(如 token 过期),服务器返回登录页面。
- 请求方法错误(如用 GET 访问只支持 POST 的接口)。
排查步骤
1. 检查原始数据内容
在解析前打印原始响应内容,确认是否为 JSON:
String rawResponse = getResponseFromServer(); // 获取原始数据
System.out.println("原始响应: " + rawResponse); // 重点看开头是否包含 "<?"
如果输出类似以下内容,说明是 XML/HTML:
<!-- 示例:HTML 错误页面 -->
<!DOCTYPE html>
<html>
<head><title>404 Not Found</title></head>
<body>...</body>
</html>
2. 验证数据来源
- 确认 API 地址正确:检查请求 URL 是否指向正确的 JSON 接口。
- 检查 HTTP 状态码:确保响应码是
200 OK而非404、500等错误。 - 检查响应头:确保
Content-Type是application/json,而非text/html或text/xml。
3. 代码修复示例
如果原始数据是 HTML/XML,需要优先处理错误情况:
try {
String jsonData = getDataFromNetwork(); // 从网络获取数据
if (jsonData.startsWith("<")) { // 检测无效数据
throw new RuntimeException("服务器返回了非 JSON 数据");
}
JSONObject obj = JSON.parseObject(jsonData); // 解析 JSON
} catch (JSONException e) {
// 处理解析失败
}
解决方案
-
修复数据来源
- 确保请求的 API 地址正确且返回 JSON 格式。
- 在 HTTP 请求头中明确要求 JSON:
// 示例:使用 HttpURLConnection 设置 Accept 头 connection.setRequestProperty("Accept", "application/json");
-
处理服务器错误
- 捕获 HTTP 错误状态码(如 4xx/5xx),并终止 JSON 解析流程。
- 检查服务器日志,确认其是否正确处理了请求。
-
更换解析工具(非必须)
如果是第三方数据源强制返回 XML,可改用 XML 解析器(如 Jackson、JAXB),或先转换格式:// 示例:将 XML 转换为 JSON(需额外库) String json = XmlMapper.convertXmlToJson(xmlData);
总结
此异常的根本原因是 输入数据不符合 JSON 格式。请优先确保:
- 数据来源可靠(正确 URL + 返回 JSON 格式)。
- 解析前验证原始内容(避免处理错误页面)。
通过检查网络响应和修复请求逻辑,即可解决该问题。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)