解析JSON输出并提取JavaScript中的值

时间:2019-11-29 15:02:58

标签: javascript json servicenow servicenow-rest-api

我现在从服务中获取的json输出是

[{"errno": "0","num_keys": "0"},
 {"errno": "1","num_keys": "2"},
 {"errno": "3","num_keys": "4"},
 {"errno": "5","num_keys": "6"}]

在这种情况下,如果键errno和num_keys,我想提取每个值。

我正在使用以下代码:

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 result=response.getBody();

这里是如何提取值的?

var result=response.json();

2 个答案:

答案 0 :(得分:0)

简单解析:

var json = '{"myjsons":[{"errno": "0","num_keys": "0"},{"errno": "2","num_keys": "3"}]}';


var jsonData = JSON.parse(json);
for (var i = 0; i < jsonData.myjsons.length; i++) {
    var myjsons= jsonData.myjsons[i];
    console.log(myjsons.errno);
     console.log(myjsons.num_keys);
}

也这样:

var arr =  [{"errno": "0","num_keys": "0"},
 {"errno": "1","num_keys": "2"},
 {"errno": "3","num_keys": "4"},
 {"errno": "5","num_keys": "6"}];

arr.forEach(function(value){
  console.log('errno: ' + value.errno);
  console.log('num_keys: ' + value.num_keys);

});

答案 1 :(得分:0)

以前可能已经问过这个问题,但是您的问题本身就有答案。您将需要使用JSON.parse()将JSON字符串解析为JavaScript对象,也许是这样的:

var result = JSON.parse(response.json());

您从示例响应中得到的对象将是一个对象数组,您可以通过以下对象访问或迭代:

var error0 = result[0];

请注意,如果HTTP请求失败或未返回正确格式的JSON,则可能会出错。