如何在Bruno的JSON请求体中使用动态对象环境变量?
解决Bruno中JSON请求体发送动态对象的问题
核心问题原因
你之前的写法要么把变量当成字符串(加了引号),要么序列化后导致JSON格式混乱,本质是没正确处理环境变量的类型和引用方式。
正确实现步骤
前置脚本中直接存储对象类型的环境变量
不要把对象序列化为JSON字符串,直接将JS对象存入环境变量。示例:// 方式1:直接定义目标对象 const dynamicObj = { "augend": 2, "addend": 3 }; bruno.setEnv("objectToSend", dynamicObj); // 方式2:从前置请求响应中获取对象 const preResponse = await bruno.sendPreRequest("你的前置请求名称"); bruno.setEnv("objectToSend", preResponse.body);请求体中无引号引用变量
在JSON请求体里,直接不带引号使用变量,Bruno会自动将对象解析并嵌入JSON结构中:{ "id": "id123", "input": {{objectToSend}} }
错误写法的问题说明
- 如果给变量加引号
"{{objectToSend}}",Bruno会把变量值(即使是对象)转成字符串,最终发送的是"[object Object]"或者序列化后的字符串内容,不符合JSON结构要求。 - 如果提前把对象序列化为JSON字符串再存变量,请求体里引用后会出现多余的转义字符,导致JSON格式无效。
内容的提问来源于stack exchange,提问作者user29513262
相关产品推荐
相关产品推荐

