簡體   English   中英

來自BaasBox中POST請求的JSON對象

[英]JSON object from POST request in BaasBox

我正在嘗試從POST請求中的有效負載創建JSON對象,但似乎無法使其正常工作。 我正在使用BaasBox,並創建了一個JavaScript插件,如下所示:

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對象。 來自iOS客戶端應用程序的JSON如下所示:

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

現在,這是有趣的部分:如果我只是這樣存儲請求正文,則JSON將成功存儲為Document。

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對象?

原來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};
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM