将url编码的内容解析为JSON

时间:2018-06-03 14:01:12

标签: typescript

我试图解析,没有成功的网址编码体内容如:"data={\"event\":\"INBOX\",\"from\":\"3323230\",\"to\":\"43434343357\",\"text\":\"Example text"}"

我正在做:var myVar = JSON.parse(myUrlEncodedContenString)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

基本正确:

var myVar = JSON.parse(myUrlEncodedContenString);

但是你的字符串不是JSON对象。 JSON对象不能以" data ="开头。 JSON对象只是在" data ="之后开始的路径。所以首先从索引5开始提取子字符串。只有以下部分是JSON:

{\"event\":\"INBOX\",\"from\":\"3323230\",...}

此外,您的字符串中存在错误。一个地方缺少逃脱。

你有:

...\"Example text"}"

但它应该是:

...\"Example text\"}"

测试显示它是如何工作的(在最后固定时转义):



    <script type="text/javascript">
          var data = "data={\"event\":\"INBOX\",\"from\":\"3323230\",\"to\":\"43434343357\",\"text\":\"Example text\"}";
          var jsonEscaped = data.substring(data.indexOf("=") + 1);
          var result = JSON.parse(jsonEscaped);
          console.log(result);
          console.log(result.event);
          console.log(result.from);
          console.log(result.to);
          console.log(result.text);
    </script>
&#13;
&#13;
&#13;