我需要使用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函数的返回输出。如何解决这个问题。
答案 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));