Javascript 无法正确解析通过网络发送的字符串化Json

Javascript 无法正确解析通过网络发送的字符串化Json,javascript,json,typescript,websocket,Javascript,Json,Typescript,Websocket,我尝试使用typescript(在nodejs中运行)实现websocket服务器 另一方面,我使用angular的webSocket客户端发送数据(使用web浏览器) 打印出来的是 got message:"{\"a\":\"123\",\"b\":\"456\"}" {"a":"123","b":"456"} undefined 解析的对象不包含成员a(使用m[“a”]也未定义) 但是,如果我只编写一个简单的javascript const msg = "{\"a\":\"123\

我尝试使用typescript(在nodejs中运行)实现websocket服务器

另一方面,我使用angular的webSocket客户端发送数据(使用web浏览器)

打印出来的是

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})
log(JSON.parse(x.a)
设y=JSON.stringify(x)

console.log(JSON.parse(y.a)
,因为在某个地方您再次字符串化了它

如果您将
console.log(typeof m)
您将获得
'string'

let x=JSON.stringify({a:123,b:456})
log(JSON.parse(x.a)
设y=JSON.stringify(x)

console.log(JSON.parse(y.a)
是的,您基本上是在生成一个双字符串。 您实际上不需要将有角度的WebSocket字符串化

const msg=JSON.stringify('{“a”:“123”,“b”:“456}');
设m=JSON.parse(msg);
控制台日志(msg);
控制台日志(m);
控制台日志(m.a);
m=JSON.parse(JSON.parse(msg));
控制台日志(m);

控制台日志(m.a)是的,你基本上是在做一个双字符串。 您实际上不需要将有角度的WebSocket字符串化

const msg=JSON.stringify('{“a”:“123”,“b”:“456}');
设m=JSON.parse(msg);
控制台日志(msg);
控制台日志(m);
控制台日志(m.a);
m=JSON.parse(JSON.parse(msg));
控制台日志(m);
控制台日志(m.a)
    const msg = "{\"a\":\"123\",\"b\":\"456\"}"
    const m = JSON.parse(msg);
    console.log(m);
    console.log(m.a);
{ a: '123', b: '456' }
123