2016-02-14 3 views
0

Я пытаюсь создать объект JSON из полезной нагрузки в запросе POST, но не может показаться, что он работает. Я использую BaasBox и я создал плагин JavaScript, который выглядит следующим образом:Объект JSON из запроса POST в BaasBox

http().post(function(req){ 
    Box.log(req.method + " received: " + req); 
    var jsonObject = JSON(req.body); 
    Box.log("JSON parsed successfully"); 

    var message = new Object(); 
    message.message = jsonObject["message"]; 
    message.firstname = jsonObject["firstname"]; 
    message.lastname = jsonObject["lastname"]; 

    var doc = Box.Documents.save("Messages",message); 
    Box.log("Messages created: " + doc.id); 
    return {status: 200, content: message}; 
}); 

Это простой скрипт, который пытается создать объект JSON из тела запроса. JSON из клиентского приложения IOS выглядит следующим образом:

let json = "{ \"firstname\" : \"John\" , \"lastname\" : \"Jones\" , \"message\" : \"Hello there\" }" 

Теперь вот интересная часть: Если я просто сохранить тело запроса, как это вместо того, чтобы, то JSON успешно хранится в виде документа.

http().post(function(req){ 
    Box.log(req.method + " received: " + req); 

    var doc = Box.Documents.save("Messages",req.body); 
    Box.log("Messages created: " + doc.id); 
    return {status: 200, content: req.body}; 
}); 

Как создать объект JSON из тела запроса?

+0

попробуйте изменить 'вар JSONObject = JSON (req.body),' 'в вар JSONObject = JSON.parse (req.body);' – th1rdey3

+0

Упс, опечатки с моей стороны! Но это не работает :( –

+1

Вы пробовали 'var doc = Box.Documents.save (« Сообщения », JSON.stringify (message));'? – th1rdey3

ответ

0

Оказывается, что req.body не является фактической строкой. Вот обновленный код, который работает:

http().post(function(req){ 
    Box.log(req.method + " received: " + req); 
    var jsonString = JSON.stringify(req.body); 
    var jsonObject = JSON.parse(jsonString); 
    Box.log("JSON parsed successfully"); 

    var message = new Object(); 
    message.message = jsonObject["message"]; 
    message.firstname = jsonObject["firstname"]; 
    message.lastname = jsonObject["lastname"]; 

    var doc = Box.Documents.save("Messages",message); 
    Box.log("Messages created: " + doc.id); 
    return {status: 200, content: message}; 
}); 
Смежные вопросы