aws lambda return json 带斜杠的数据

aws lambda return json data with slashes

我需要使用 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 库 addongetSampleData 是 c++ 代码中的一种方法。它将 return 一个 json 格式的字符串(不是 json 对象)。在我的 node.js 代码中,控制台日志打印 正确 json 字符串。

但是执行这个 lambda 函数 returnd 输出带有斜杠。如何解决这个问题。

"{ "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));