如何修改ServiceNow API返回JSON中的字段名称?
如何修改ServiceNow API返回JSON中的字段名称?
嗨,我来给你分享两个实用的解决方案,帮你把ServiceNow API返回的字段改成你想要的名字!
方法一:在Postman中通过脚本转换字段
如果你只是想在Postman里临时处理返回结果,不需要改动ServiceNow的配置,这个方法最适合你。你可以利用Postman的Tests脚本来重命名字段:
- 打开你的Postman请求,切换到「Tests」标签页
- 粘贴以下JavaScript代码,根据你的字段映射修改即可:
// 获取原始的API响应数据 const originalData = pm.response.json(); // 遍历result数组,逐个转换字段名 const transformedResults = originalData.result.map(item => { return { phone_number: item.phone, id: item.user_name, full_name: item.name }; }); // 构建新的响应结构 const newResponse = { result: transformedResults }; // 让Postman显示转换后的响应结果(可选) pm.response.json(newResponse); // 如果你需要把转换后的数据用到后续请求,可以存到环境变量里 pm.environment.set("formattedUserData", JSON.stringify(newResponse));
运行请求后,你就能在「Response」里看到字段名已经改成你想要的样子啦!
方法二:在ServiceNow端创建自定义API返回映射后的字段
如果这个需求是长期的,或者需要让其他调用者也直接拿到格式化后的结果,推荐在ServiceNow里创建一个Scripted REST API,自己控制返回的字段:
- 登录ServiceNow后台,搜索「Scripted REST APIs」并进入
- 创建一个新的REST API端点,设置好路径(比如
/custom/user) - 在「Script」标签页里编写查询和字段映射的脚本,示例如下:
// 查询目标表的数据(这里以sys_user表为例,你可以替换成你的表) var userRecord = new GlideRecord('sys_user'); // 添加你的查询条件,比如按用户名筛选 userRecord.addQuery('user_name', 'micmou'); userRecord.query(); const resultList = []; // 遍历查询结果,构建自定义字段的对象 while (userRecord.next()) { const formattedUser = { phone_number: userRecord.phone.toString(), id: userRecord.user_name.toString(), full_name: userRecord.name.toString() }; resultList.push(formattedUser); } // 返回最终的JSON结构 return { result: resultList };
保存后,用Postman调用这个自定义的API端点,就能直接拿到字段名已经修改好的返回结果了。
两种方法各有优势:Postman脚本适合临时快速处理,自定义API适合长期复用的场景,你可以根据自己的需求选择~
备注:内容来源于stack exchange,提问作者Count Boxer
相关产品推荐
相关产品推荐

