You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JavaScript中解析ServiceNow返回的JSON并提取errno与num_keys字段值

提取ServiceNow REST响应中的errno和num_keys字段

你已经走对路啦——使用response.json()是直接把REST响应转换成JavaScript对象的最优方式,比手动解析字符串高效得多。下面是具体的实现步骤和代码示例:

1. 修正请求代码,获取JSON对象数组

把原来获取响应体字符串的代码换成response.json(),直接得到可操作的对象数组:

var request = new sn_ws.RESTMessageV2();
request.setEndpoint("url");
request.setHttpMethod('GET');
request.setRequestHeader('Content-Type','application/json');
request.setRequestHeader('X-IPM-Username','some name');
request.setRequestHeader('X-IPM-Password','some password');

var response = request.execute();
var jsonResponse = response.json(); // 直接转换为JS对象数组,无需手动解析

2. 遍历数组提取目标字段

你可以用forEach循环遍历数组中的每个对象,提取errno和num_keys的值,根据需求做后续处理(比如打印日志、存入变量或写入ServiceNow表):

示例1:打印每个字段值

// 遍历数组中的每个对象
jsonResponse.forEach(function(item) {
    var errNo = item.errno;
    var keyCount = item.num_keys;
    // 用gs.info输出到系统日志,方便调试
    gs.info(`提取到的内容:errno=${errNo},num_keys=${keyCount}`);
});

示例2:将提取结果存入新数组

如果需要把提取后的数据整理成新的结构保存,可以这样做:

var extractedData = [];
jsonResponse.forEach(function(item) {
    extractedData.push({
        errorNumber: item.errno, // 可以自定义字段名
        keyCount: item.num_keys
    });
});

// 查看整理后的数组
gs.info(JSON.stringify(extractedData));

3. 增加异常判断(可选)

为了避免响应格式不符合预期导致报错,可以先判断返回的是否为数组:

if (Array.isArray(jsonResponse)) {
    // 执行上面的遍历逻辑
} else {
    gs.error('REST响应不是预期的数组格式,请检查接口返回内容');
}

如果你之前用的是response.getBody(),也可以手动解析字符串:

var result = response.getBody();
var jsonResponse = JSON.parse(result);
// 后续遍历逻辑和上面一致

不过更推荐使用response.json(),它是ServiceNow REST API提供的便捷方法,代码更简洁且不易出错。

内容的提问来源于stack exchange,提问作者impika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:47:07