我想将此JSON网址提供给其他网站
http://naturetrek.co.uk/blog/api/get_recent_posts/
但问题是因为最初的三个<p>
标签是无效的JSON,你可以在这里查看...
如果你删除这3个标签,它就会生效。
我们无法更改Naturetrek博客的JSON字符串输出。
在我们自己的代码中,我们使用以下内容....
<h2>Naturetrek BLOG</h2>
<div id="ntblog"></div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var blogURL = "http://naturetrek.co.uk/blog/api/get_recent_posts/";
$.getJSON(blogURL, function(info) {
alert("here");
var output = info.status;
/*
for (var i = 0; i <= info.posts.length - 1; i++) {
output += '<li>' +
'<a href = "' + info.posts[i].url +
'">' + info.posts[i].title + '</a></li>';
}
*/
var ntblog = document.getElementById('ntblog');
ntblog.innerHTML = output;
});
});
</script>
警报永远不会被调用,因为JSON是无效的JSON。我的问题是 - 有一种方法可以让JSON去除三个<p>
TAGS,有哪些?还是你可以想到的另一种方式?
答案 0 :(得分:2)
$。getJSON只是简写:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
请参阅此处的文档:http://api.jquery.com/jQuery.getJSON/
只需使用$ .ajax将dataType更改为“html”,并使用$ .parseJSON在成功函数中解析修改后的JSON数据
注意:由于您似乎在进行跨域请求,因此必须使用jsonp,请在此处阅读更多内容:
答案 1 :(得分:1)
你应该真的要求他们修复他们的JSON ......
与此同时,作为补丁,您应该将其作为HTML内容下载,预先解析(通过删除标记),然后将生成的内容解析为普通JSON。
但是上面的过程实际上是一个补丁,当JSON生产者修复它时它会消失。