从用户输入将原始JSON输入到JSON对象中

时间:2018-03-01 02:26:51

标签: javascript json

所以我在javscript中有以下对象作为JSON对象发送:

var authMessage = {
        MessageType: "authRequest",
        Payload: {"ClientAuthString": "abcdefg"}
}
ws.send(JSON.stringify(authMessage))

这段代码效果很好,完全符合我的需要......现在我想接受用户输入(通过网络表单)来生成这个对象。我似乎无法在javascript中完成此任务。

messageType = document.getElementById("messageType").value
payload = document.getElementById("payloadInput").value 

获取messageType作为字符串正常工作,但我希望用户在有效负载中输入RAW JSON,然后将其放入javascript对象中......如下所示:

    var message = {
        MessageType: messageType,
        Payload: payload

    }

因此,在输入字段中,用户将输入:

{"ClientAuthString": "eyJhbGuuN0jcY"}

然后我会接受输入并尝试发送它...但这是我得到它后得到的字符串..我尝试了一些不同的方法,但无法将Payload作为JSON发送格式化对象......任何想法?

{"MessageType":"authRequest","Payload":"{\"ClientAuthString\": \"eyJhbGuuN0jcY\"}"}

3 个答案:

答案 0 :(得分:1)

使用以下命令创建对象

var message = {
    MessageType: messageType,
    Payload: JSON.parse(payload)

}

这会将您的有效负载解析为一个对象并创建消息对象,然后您可以对此进行字符串化。

答案 1 :(得分:1)

简单地认为JSON.parse应该做的工作:



// DOM input value
var inputText = '{"ClientAuthString": "eyJhbGuuN0jcY"}';

var message = {
    MessageType: "authRequest",
    Payload: JSON.parse(inputText)
};
console.log(message);




详细了解JSON.parse

答案 2 :(得分:0)

最佳方法是将其解析为json

  

Payload:JSON.parse(payload)