2016-09-03 2 views
2

Мне нужно распечатать данные json, используя aws lambda. это мой кодaws lambda return 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] }}" 

Bu мне нужно, чтобы получить выход как этого

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

в этом коде, я создал НУЮ библиотеку аддона используя C++ код. и getSampleData - это метод внутри кода C++. он вернет json-форматированную строку (не json-объект). В моем узле .js-код, консольный журнал печатает правильную строку json.

Но выполнение этой функции лямбда-функции returnd с помощью Slashes. Как решить эту проблему.

ответ

2

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

+0

благодаря случаю, но в мой случай, я получил json formated string из метода. console.log распечатать правильные данные. но результат неправильный. Вопрос обновлен –

+0

@AbdulManaf см. Мое обновление –

Смежные вопросы