API 返回 JSON 详解
API 与 JSON 基础概念
概念 | 说明 |
---|---|
API | 应用程序接口(Application Programming Interface),用于不同系统间的数据交互。 |
JSON | JavaScript Object Notation,轻量级数据交换格式,易于人与机器读写。 |
RESTful API | 基于 HTTP 协议的 API 设计风格,通常返回 JSON 格式数据。 |
JSON 结构详解
键值对(Key-Value)
- 格式:
"key": value
- 示例:
{ "name": "Alice", "age": 25 }
数组(Array)
- 格式:用
[]
包裹多个值或对象。 - 示例:
{ "users": [ {"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"} ] }
嵌套结构
- 说明:JSON 支持多层嵌套(对象包含数组,数组包含对象)。
- 示例:
{ "company": { "name": "Tech Corp", "employees": [ {"id": 1, "role": "Engineer"}, {"id": 2, "role": "Manager"} ] } }
常见数据类型对照表
JSON 类型 | 示例 | 说明 |
---|---|---|
字符串 | "hello" | 需用双引号包裹。 |
数字 | 123 , 14 | 支持整数和浮点数。 |
布尔值 | true , false | 大小写敏感。 |
空值 | null | 表示无值或未知值。 |
数组 | [1, 2, 3] | 有序集合。 |
对象 | {"key": "value"} | 无序键值对集合。 |
API 响应状态码与 JSON 关系
HTTP 状态码 | 类别 | 说明 | 示例场景 |
---|---|---|---|
200 | 成功 | 请求正常,返回 JSON 数据。 | GET /users 返回用户列表 |
400 | 客户端错误 | 请求参数错误(如缺少必填字段)。 | POST /login 密码为空 |
404 | 资源未找到 | 请求的 API 路径不存在。 | GET /unknown |
500 | 服务器错误 | 服务器内部异常。 | 数据库连接失败 |
错误处理与 JSON 返回
错误响应格式
{ "error_code": 1001, "message": "Invalid API Key", "details": "The provided API key is expired." }
常见问题解决方案
错误码 | 原因 | 解决方法 |
---|---|---|
1001 | API 密钥无效 | 检查密钥是否正确或重新生成。 |
1002 | 权限不足 | 升级账户或联系管理员。 |
1003 | 请求频率超限 | 降低请求频率或申请更高配额。 |
如何解析 API 返回的 JSON
前端解析(以 JavaScript 为例)
fetch('https://api.example.com/data') .then(response => response.json()) // 解析 JSON .then(data => console.log(data)); // 使用数据
后端解析(以 Python 为例)
import json import requests response = requests.get('https://api.example.com/data') data = response.json() # 直接转换为 Python 字典 print(data['users'][0]['name']) # 访问嵌套字段
相关问题与解答
问题 1:如何处理嵌套过深的 JSON 数据?
解答:
- 前端:通过递归或 lodash 等工具库提取深层字段。
- 后端:优化 API 设计,减少嵌套层级,或提供“扁平化”字段选项。
问题 2:跨域请求 API 返回 JSON 时出现 CORS 问题怎么办?
解答:
- 服务器端:配置 CORS 头(如
Access-Control-Allow-Origin: *
)。 - 客户端:使用代理服务器(如 Nginx
以上就是关于“api 返回json”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复