aws lambda用斜杠返回json数据

时间:2016-09-03 08:24:54

标签: json amazon-web-services aws-lambda

我需要使用aws lambda打印json数据。这是我的代码

'use strict';
console.log('Loading function');

exports.handler = (event, context, callback) => {

  var addon = require('./path/to/addon');
  var sampleData=addon.getSampleData(userId);
  console.log(sampleData); // it will print correct json data
  //var sampleData="{ \"data\":{ \"key1\": \"1472722877992\", \"key2\": [ 814, 809] }}";

   callback(null, sampleData);
};

我有这样的输出

"{ \"data\":{ \"key1\": \"1472722877992\", \"key2\": [ 814, 809] }}"

我需要得到像这样的输出

"{ "data":{ "key1": "1472722877992", "key2": [ 814, 809] }}"

在这段代码中,我使用c ++代码创建了一个npm库 addon getSampleData 是c ++代码中的一个方法。它将返回一个json格式化的字符串(不是json对象)。在我的node.js代码中,控制台日志打印 正确的json字符串。

但是用斜杠执行这个lambda函数的返回输出。如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

"{ "data":{ "key1": "1472722877992", "key2": [ 814, 809] }}"不是有效字符串。它是一个双引号字符串,其中嵌入了非转义双引号。那是无效的。

您是否尝试过对字符串使用单引号?

var sampleData='{ "data":{ "key1": "1472722877992", "key2": [ 814, 809] }}';

或者您是否尝试过像这样返回一个JSON对象?

var sampleData={ "data":{ "key1": "1472722877992", "key2": [ 814, 809] }};

根据相关新信息进行修改:

尝试将字符串转换为JSON对象,如下所示:

callback(null, JSON.parse(sampleData));