1

我现在服务的 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();
4

2 回答 2

1

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

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

根据您的示例响应,您生成的对象将是一个可以访问或迭代的对象数组:

var error0 = result[0];

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

于 2019-11-29T15:11:53.473 回答
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);

});
于 2019-11-29T15:08:18.577 回答