javascript - JS - 用 html 解析 JSON

标签 javascript json

我有这种格式的数据:

var data = "{"attr":"value","html":"<div><div style="left: 0px;"></div></div>"}";

html 还有更多内容,但这里不需要。我尝试这样做:

data = JSON.parse(data)

此错误给出:

Uncaught SyntaxError: Unexpected token l

由于样式中多了一个“。你如何正确解析这个?

编辑:

我从服务器获取数据,因此我在 Websocket 中接收数据,例如:

sock.onmessage = function(message) {
    //Need to parse this.
    data = message.data

    console.log(typeof data); // = string
    console.log(data);
    //console.log(data) result        
    //{"attr":"value","html":"<div><div style="left: 0px; width: 100%; height: 0px; position: relative; padding-bottom: 56.2493%;">Content</div></div>"}
}

最佳答案

这里有两个非常相似的问题。第一个是您简化问题中示例的方式。

var data = "{"attr":"value","html":"<div><div style="left: 0px;"></div></div>"}";

这不是有效的 JavaScript。最简单的解决方法是在整个内容中使用单引号。您还可以使用反斜杠 \ 转义引号。试试这个:

var data = '{"attr":"value","html":"<div><div style="left: 0px;"></div></div>"}';

现在你遇到的第二个问题是这个 JSON 完全无效并且不明确。原因是 html 部分中的引号未正确转义。除非您知道这种格式永远不会改变,否则您对此无能为力。在这种情况下,您可以编写自己的 hackjob 伪 JSON 解析器。 不要这样做。

您需要与向您提供垃圾数据的人交谈。您的代码应该如何知道 html 变量值是否完整,或者它是否只是 HTML 中的引号?无论谁设置了此 JSON 数据,都需要修复它。

关于javascript - JS - 用 html 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40710729/

相关文章:

java - JSON 字符串到 Java 字符串

java - JSON 查找值并返回带有键的对象

javascript - 比较数组(不修改原始数组)

javascript - 尝试构建 ember js 项目时出错

javascript - 使用 TypeScript/Angular2 循环对象的键/值

ruby-on-rails - ruby : How to parse a jsonp and save json data to database

javascript - 使用 PHP 和 JSON 平面文件的最佳实践/方法

javascript - 防止 window.scroll 处理程序保留到其他页面

javascript - 使用 Ajax 传递一个 dict of dict

java - 如何以JSON格式在couchbase lite android中插入数据