JSON.parse()可直接解析合法JSON字符串,但必须确保格式规范:键名和字符串值须用双引号、禁止单引号、尾随逗号、未转义字符等;常见错误包括后端误用toString()或返回HTML,建议用在线工具验证,并始终用try...catch包裹以防崩溃。

直接用 JSON.parse() 就行,但得确保字符串是合法的 JSON 格式,否则会报错。
确认响应字符串符合 JSON 规范
服务器返回的必须是标准 JSON 字符串,比如:
-
"{'name': '张三'}"❌(单引号不合法) -
'{"name": "张三"}'✅(双引号 + 外层用单引号或反引号包裹) -
'{"id": 123, "active": true, "tags": ["js", "json"]}'✅
常见错误来源:后端误用 toString()、拼接字符串、或返回了 HTML/文本混合内容。可在控制台先打印原始响应,用在线 JSON 验证工具(如 jsonlint.com)检查格式。
基础用法:直接解析
拿到响应体字符串后,传给 JSON.parse() 即可:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
立即学习“Java免费学习笔记(深入)”;
const responseText = '{"username":"alice","age":28}';
const user = JSON.parse(responseText);
console.log(user.username); // "alice"
console.log(typeof user); // "object"
加错误处理,避免崩溃
网络响应可能不是 JSON,或格式出错。务必用 try...catch 包裹:
function safeParse(jsonStr) {
try {
return JSON.parse(jsonStr);
} catch (err) {
console.error('JSON 解析失败:', err.message);
return null; // 或抛出自定义错误、返回默认值
}
}
// 使用示例
const data = safeParse(responseText);
if (data) {
console.log(data);
} else {
alert('数据加载异常,请重试');
}
配合 fetch 使用的典型流程
现代项目多用 fetch,它本身提供 .json() 方法,内部已封装 JSON.parse 和错误处理:
fetch('/api/user')
.then(res => {
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json(); // 自动调用 JSON.parse,失败时 reject
})
.then(user => console.log(user))
.catch(err => console.error('请求或解析出错:', err));
如果手动读取 res.text(),再解析,则需自己加 try/catch。

















