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

问题描述 投票:0回答:3

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

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

这段代码效果很好,完全符合我的需要...现在我想接受用户输入(通过Web表单)来生成这个对象。我似乎无法在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\"}"}
javascript json
3个回答
1
投票

使用以下命令创建对象,

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

}

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


1
投票

想想简单的JSON.parse应该做的工作:

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

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

了解更多关于JSON.parse的信息


0
投票

最好的方法是将它解析为json

有效载荷:JSON.parse(有效载荷)

© www.soinside.com 2019 - 2024. All rights reserved.