所以我在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\"}"}
答案 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)