Postman如何发送JSON参数:详细指南与实用技巧
在API测试中,JSON(JavaScript Object Notation)因其轻量级、易读性和跨语言兼容性,已成为最常用的数据交换格式之一,Postman作为主流的API测试工具,提供了多种发送JSON参数的方法,满足不同场景下的测试需求,本文将详细介绍在Postman中发送JSON参数的多种方式、注意事项及实用技巧,助你高效完成API测试。
通过“raw+JSON”方式发送JSON参数(最常用)
这是Postman中最基础也是最常用的发送JSON参数的方式,适用于大多数需要请求体(Request Body)的API(如POST、PUT、PATCH请求)。
操作步骤:
-
创建请求并设置请求方法
打开Postman,新建请求(点击“New”→“Request”),选择请求方法(如POST),输入请求URL(如https://api.example.com/users)。 -
设置请求头(Headers)
在“Headers”标签页中,添加一个请求头:- Key:
Content-Type - Value:
application/json
注:这一步至关重要!它告诉服务器请求体是JSON格式,服务器才能正确解析参数,若未设置,部分API可能会返回“415 Unsupported Media Type”错误。
- Key:
-
选择“raw”格式并指定JSON
切换到“Body”标签页,勾选“raw”选项,然后在右侧下拉菜单中选择“JSON”格式(如下图所示)。 -
输入JSON参数
在文本框中直接输入JSON格式的参数,支持标准的JSON语法(键值对、数组、嵌套对象等)。{ "name": "张三", "age": 28, "email": "zhangsan@example.com", "address": { "city": "北京", "district": "朝阳区" }, "hobbies": ["阅读", "跑步"] }注意:JSON语法要求严格,键必须用双引号(不能用单引号),值可以是字符串、数字、布尔值、数组、对象或null,且不能有注释(除非通过工具预处理)。
-
发送请求并验证
点击“Send”按钮,Postman会将JSON数据作为请求体发送给服务器,在“Response”区域可查看服务器返回的结果,验证参数是否被正确接收和处理。
适用场景:
- 创建资源(如POST请求提交用户信息、订单数据)。
- 更新资源(如PUT请求更新完整数据,PATCH请求部分更新)。
- 需要传递结构化、非表单数据的场景。
通过“x-www-form-urlencoded”发送JSON参数(特殊场景)
虽然“x-www-form-urlencoded”主要用于表单数据(键值对格式),但通过特殊处理也可发送JSON参数,不过这种方式不推荐用于标准的JSON API,仅适用于某些旧系统或特殊接口要求。
操作步骤:
-
设置请求头
在“Headers”中添加Content-Type: application/x-www-form-urlencoded。 -
选择“x-www-form-urlencoded”并输入参数
切换到“Body”标签页,勾选“x-www-form-urlencoded”,在“Key”和“Value”中输入JSON的键值对,对于JSON{"name":"张三","age":28},需拆分为:- Key:
name, Value:张三 - Key:
age, Value:28
注意:这种方式无法直接传递嵌套对象或数组,复杂JSON需手动扁平化处理(如
address[city]),且服务器需支持解析表单格式的JSON数据。 - Key:
适用场景:
- 某些旧API强制要求表单格式,但实际数据是JSON。
- 简单键值对数据,且服务器兼容表单解析。
通过“form-data”发送JSON参数(文件上传+JSON混合场景)
“form-data”主要用于上传文件(如图片、文档),但也可同时传递JSON参数,适合“文件+结构化数据”混合提交的场景(如用户头像上传并附带用户信息)。
操作步骤:
-
设置请求头
“form-data”会自动设置Content-Type: multipart/form-data,无需手动添加。 -
选择“form-data”并添加参数
切换到“Body”标签页,勾选“form-data”,点击“Edit”或“Add”按钮,添加参数:- 普通JSON参数:选择“Text”类型,输入Key(如
user_info)和Value(直接填JSON字符串,如{"name":"张三","age":28})。 - 文件参数:选择“File”类型,输入Key(如
avatar),点击“Select Files”选择本地文件。
混合提交用户信息和头像:
- Key:
user_info, Type: Text, Value:{"name":"张三","email":"zhangsan@example.com"} - Key:
avatar, Type: File, Value:logo.png
- 普通JSON参数:选择“Text”类型,输入Key(如
适用场景:
- 文件上传(如用户头像、商品图片)并附带JSON格式的元数据。
- 需要同时传递文本和二进制数据的场景。
发送复杂JSON:嵌套对象、数组与动态变量
实际API测试中,JSON参数常包含嵌套对象、数组或动态数据(如时间戳、随机数),Postman可通过以下方式灵活处理:
嵌套对象与数组
直接在“raw+JSON”中按JSON语法书写即可,Postman会自动保留嵌套结构。
{
"order_id": "ORD20240520001",
"customer": {
"id": 1001,
"name": "李四",
"contact": {"phone": "13800138000", "email": "lisi@example.com"}
},
"products": [
{"product_id": "P001", "name": "商品A", "quantity": 2},
{"product_id": "P002", "name": "商品B", "quantity": 1}
],
"total_amount": 299.99
}
动态变量({{$timestamp}}、{{$randomInt}}等)
Postman内置动态变量可在JSON参数中自动替换为实时数据,避免手动修改。
{
"user_id": "{{$randomInt}}", // 生成随机整数(如12345)
"request_time": "{{$timestamp}}", // 生成当前时间戳(如1716264523)
"trace_id": "{{$guid}}" // 生成全局唯一ID(如a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11)
}
注:在“raw+JSON”文本框中输入变量名后,Postman会自动高亮显示,发送时自动替换为实际值。
从环境变量/全局变量引用JSON
若JSON参数的部分字段需要复用(如API基础URL、固定Token),可通过变量简化维护:
- 设置变量:点击Postman右上角“Environment”或“Globals”,添加变量(如
base_url=https://api.example.com,token="abc123")。 - 在JSON中引用变量:使用
{{变量名}}语法,{ "api_endpoint": "{{base_url}}/users", "access_token": "{{token}}" }
常见问题与解决方案
发送JSON后服务器返回“415 Unsupported Media Type”
原因:未设置Content-Type: application/json请求头,或请求体格式不符合JSON规范。
解决:
- 检查“Headers”中是否添加
Content-Type: application/json。 - 检查JSON语法是否正确(如双引号、逗号、括号匹配)。
JSON参数未正确传递(服务器接收为空或格式错误)
原因:
- 请求体未选择“raw+JSON”格式(如误选“x-www-form-urlencoded”)。
- JSON字符串未用双引号包裹(如单引号
'name'或无引号name)。 - 服务器端代码未正确解析JSON(如使用
request.getParameter()而非request.getJSON())。
解决: - 确认“Body”选择“raw”且格式为“JSON”。
- 使用JSON校验工具(如JSONLint)检查语法。
- 联系后端开发确认服务器解析逻辑。



还没有评论,来说两句吧...