解析json对typescript类的响应

时间:2018-06-15 19:45:45

标签: json typescript

我知道有多个类似的主题,但尝试他们的解决方案并没有给我预期的结果。

输入 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对象的正确方法是什么?

谢谢!

1 个答案:

答案 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);