我尝试使用typescript(在nodejs中运行)实现一个websocket服务器。
ws.on('message', (msg: string) => {
console.log("got message:" + msg);
const m = JSON.parse(msg);
console.log(m);
console.log(m.a);
}
在另一端,我使用 Angular 的 webSocket 客户端发送数据(使用网络浏览器),
socket.next( JSON.stringify({a: "123", b:"456"}) )
打印输出为
got message:"{\"a\":\"123\",\"b\":\"456\"}"
{"a":"123","b":"456"}
undefined
解析后的对象不包含成员a(使用m[“a”]也是未定义的)。
但是,如果我只写一个简单的javascript,
const msg = "{\"a\":\"123\",\"b\":\"456\"}"
const m = JSON.parse(msg);
console.log(m);
console.log(m.a);
我会得到结果:
{ a: '123', b: '456' }
123
json解析有问题吗?谢谢。
最佳答案
因为你在某个地方再次将其字符串化,
如果你console.log(typeof m)
你会得到'string'
let x = JSON.stringify({a: "123", b:"456"})
console.log(JSON.parse(x).a)
let y = JSON.stringify(x)
console.log(JSON.parse(y).a)
所以只能使用socket.next({a: "123", b:"456"})
关于javascript - 通过网络发送的字符串化 Json 无法正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57356118/