我知道有多个类似的主题,但尝试他们的解决方案并没有给我预期的结果。
输入 json字符串
data:"{"message": "{\"type\":\"CONTROL\",\"command\":\"REQUEST_STATUS_ALL\"}"}"
对象声明/解析:
const msg: Message = <Message>JSON.parse(data.data);
输出
{message: "{"type":"CONTROL","command":"REQUEST_STATUS_ALL"}"}
- 未正确分配值,而是以文本形式分配。
如果手动初始化(在TS中),则相同的对象看起来像这样:
Message {type: "CONTROL", status: undefined, command: "REQUEST_STATUS_ALL", body: undefined}
将json字符串解析为Message
对象的正确方法是什么?
谢谢!
答案 0 :(得分:1)
似乎消息的值不正确地编码为字符串。在消息属性上第二次调用JSON.parse
将获得所需的结果,但您可能希望修复不正确编码数据的根本原因。
parseMessage(data: string) {
const msgTemp = JSON.parse(data);
msgTemp.message = JSON.parse(msgTemp.message);
return <Message>msgTemp;
}
const msg = parseMessage(data.data);