json - AWS Lambda 解析 JSON(意外 token )

标签 json amazon-web-services aws-lambda

我正在尝试获取 Lambda 函数来访问 API 并返回 JSON。

API

http://api.openweathermap.org/data/2.5/weather?id=2172797&appid=b1b15e88fa797225412429c1c50c122a

P.S 此 API ID 是 OW 提供的 demo ID。

Lambda 代码

 var jsonurl = "http://api.openweathermap.org/data/2.5/weather?id=2172797&appid=b1b15e88fa797225412429c1c50c122a";
 var data = JSON.parse(jsonurl);
 exports.handler = function(event, context) {
  console.log(data);
  context.done(null, data);  // SUCCESS with message
};

错误

{
  "errorMessage": "Unexpected token h",
  "errorType": "SyntaxError",
  "stackTrace": [
    "Object.parse (native)",
    "Object.<anonymous> (/var/task/index.js:3:17)",
    "Module._compile (module.js:456:26)",
    "Object.Module._extensions..js (module.js:474:10)",
    "Module.load (module.js:356:32)",
    "Function.Module._load (module.js:312:12)",
    "Module.require (module.js:364:17)",
    "require (module.js:380:17)"
  ]
}

日志输出

START RequestId: 8ca0fbd1-eee5-11e5-b9dd-31048a8d5a45 Version: $LATEST
Syntax error in module 'index': SyntaxError
    at Object.parse (native)
    at Object.<anonymous> (/var/task/index.js:3:17)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
END RequestId: 8ca0fbd1-eee5-11e5-b9dd-31048a8d5a45
REPORT RequestId: 8ca0fbd1-eee5-11e5-b9dd-31048a8d5a45  Duration: 173.76 ms Billed Duration: 200 ms     Memory Size: 128 MB Max Memory Used: 9 MB

谁能看出问题所在吗?

我希望 lambda 能够获取 json 并返回它,这样任何查看我的 API url 的人都会看到来自 Open Weather API 的结果

最佳答案

您正在将 URL 传递给 JSON.parse(),而不是 JSON 字符串。首先,您需要使用 http.get() 之类的方法从 URL 获取 JSON 数据。也许看看这个类似问题的答案:Parsing JSON data from a URL

关于json - AWS Lambda 解析 JSON(意外 token ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120078/

相关文章:

sql - 递归查询中的排序结果

ruby - 使用 aws-sdk 清除 s3 存储桶

amazon-web-services - AWS 从现有存储虚拟机 (SVM) 创建 ONTAP 卷

amazon-web-services - aws s3 在一个命令中cp多个文件

node.js - 如何使用nodejs在aws lambda函数中调用rest api

amazon-web-services - 使用 Lambda 容器时,AWS Lambda 函数计费持续时间还包括初始化持续时间吗?

java - AWS Lambda 显示先前的输出和当前的输出

javascript - 如何读取JSON特定字段并计算并显示

json - 我在尝试从 OpenWeatherMap API 提取数据时遇到错误

javascript - "\/\/"在 Sublime 3 中的 "Search and Replace"期间消失