【发布时间】:2016-09-28 17:02:13
【问题描述】:
我正在尝试将来自服务器的一些 JSON 解析为我可以在 Javascript 中使用的对象。 JSON 由服务器保存在 span 中。当我单击操作按钮时,它应该获取 JSON 并将其解析为一个对象。不幸的是,我遇到了一个例外。请看代码:
$(function(){
$("#btn").click(function(elem){
var elem = $("#content");
var html = elem.html();
console.log(html);
var x = JSON.parse(html);
console.log(x);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<button id="btn">Action</button>
<br/><br/>
<span id="content">{"test" : "<a href=\"http://cnn.com\">CNN</a> Hello"}</span>
</body>
我还尝试了跨度中的内容没有转义“:”
<span id="content">{"test" : "<a href="http://cnn.com">CNN</a> Hello"}</span>
知道怎么解决吗?
背景说明:这是在需要接收 json 来初始化模型的 Angular 应用程序中使用的。
【问题讨论】:
-
您能否在问题中包含
javascript,其中从服务器返回的JSON设置为htmlof#content元素? -
抱歉,我不明白您需要什么?
-
检查表:
<a>是要在#content内直观地显示,还是#content隐藏。这种传输 JSON 数据的方法注定会失败,因为原始 HTML 标记被解析为 DOM 并被丢弃。.html()调用不会为您提供原始标记。它会即时生成它。 -
@checklist “抱歉,我不明白您需要什么?” 您是如何设置
#content元素的html的?建议使用元素的.dataset或.data()来存储JSON。通过使用元素的.innerHTML来回转换,您可能会丢失精确的JSON表示。 -
@checklist "我正在尝试解析来自服务器的一些 JSON" 你如何从服务器检索
JSON?您可以在问题中包含javascript的那部分吗?
标签: javascript jquery json parsing