【发布时间】:2014-09-13 16:01:49
【问题描述】:
这是我的代码
var AWS = require('aws-sdk');
AWS.config.region = 'ap-southeast-1';
var uuid = require('node-uuid');
ec2 = new AWS.EC2({apiVersion: 'latest'});
AWS.config.update({accessKeyId: xxxxxxxx, secretAccessKey: yyyyyyyyyyy});
AWS.config.update({region: 'zzzzzzzzzzzzzz'});
var util = require('util');
var opsworks = new AWS.OpsWorks();
var cloudformation = new AWS.CloudFormation();
var cloudwatch = new AWS.CloudWatch();
function listInstances(callback){
new AWS.EC2().describeInstances(function(error, data) {
if (error) {
callback(error);
} else {
callback(util.inspect(data, {depth: null})); //this returns a full fledged JSON response on the console
}
});
}
//Test above methods
listInstances(callback);
function callback(data){
console.log(data);
}
我尝试通过替换行来解析 JSON 响应
callback(util.inspect(data, {depth: null}));
与
JSON.parse(data);
我收到以下错误
{ [SyntaxError: Unexpected token o] statusCode: 200, retryable: false }
{ [200: null]
message: null,
code: 200,
time: Tue Jul 22 2014 22:59:42 GMT+0530 (India Standard Time),
statusCode: 200,
retryable: false }
我尝试使用 eval() 来解析它,我得到了以下错误
[SyntaxError: Unexpected identifier]
我做错了什么,我应该使用任何其他逻辑来解析 JSON 响应吗?
请原谅我的无知,因为我是 node.js 和 AWS 的新手
【问题讨论】:
-
你能
console.log(data)让我们看看它的样子吗? -
看起来是这样 { Reservations: [ { ReservationId: 'xx2', OwnerId: 'xxx', Groups: [], Instances: [Object] }, { ReservationId: 'xxx1', OwnerId :'xxx',组:[],实例:[对象]}]}
-
所以它已经是一个对象了。没有必要解析任何东西。照原样使用它。
-
我什至尝试了以下方法,以便进一步简化“对象” var respdata = util.inspect(data, {depth: null}); JSON.parse(respdata);即使那样它也显示了同样的错误
-
你到底想做什么?无需调用
JSON.parse——您已经持有一个对象。例如,只需执行data.Reservations[0].OwnerId。
标签: json node.js amazon-web-services amazon-ec2 ec2-api-tools