直接调用 response.json() 方法可解析 json 响应,但需先检查 response.ok 或 status;.json() 返回 promise,须链式调用;解析失败会抛错,需 catch 处理;响应体只能读取一次,重复使用需 clone。

直接调用 response.json() 方法即可,它返回一个 Promise,解析成功后得到 JavaScript 对象或数组。
确保响应状态正常再解析
Fetch 不会因 HTTP 错误状态(如 404、500)自动拒绝 Promise,需手动检查 response.ok 或 response.status:
-
response.ok为true表示状态码在 200–299 范围内 - 建议在
.json()前加判断,避免解析空响应或错误体
正确链式调用 .json()
response.json() 必须在 Promise 链中调用,不能直接读取:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- ✅ 正确:
fetch(url).then(res => res.json()).then(data => {...}) - ❌ 错误:
fetch(url).then(res => { const data = res.json(); ... })—— 此时data是 Promise,不是实际数据
处理解析失败的情况
如果响应体不是合法 JSON,.json() 会抛出语法错误,需用 catch 捕获:
- 常见原因:后端返回 HTML 错误页、空响应、乱码或非 JSON 格式文本
- 可在
.json()后接.catch(e => console.error('JSON 解析失败:', e))
注意响应体只能读取一次
response.json()、response.text()、response.blob() 等方法都会消耗响应体流,不可重复调用:
- 若需同时获取 JSON 和其他格式,先用
response.clone()复制响应对象 - 例如:
const cloned = response.clone(); const json = response.json(); const text = cloned.text();
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










