我必须使用API来展示我的帖子,并且我遇到了格式错误的json问题,因为内容部分中的某些html会返回API。
jQuery ajax:
$.ajax({
cache: false,
type: "GET",
dataType: "json",
url: "http://bytto.com/wp-json/posts?type[name]=package&filter[category]=eco-tours-petate",
success: function(data){
}
});
要查看json,只需将下一个网址复制并粘贴到chrome或firefox:
http://bytto.com/wp-json/posts?type[name]=package&filter[category]=eco-tours-petate
我评估http://jsonformatter.curiousconcept.com/中的回复并说:
Error:Invalid characters found.
我看一下它,内容节点和摘录节点上的json失败了。
如果我将其作为纯文本返回:dataType: "text"
它来了,我喜欢做的是清理文本以使其成为json。
答案 0 :(得分:0)
似乎它是JSON的HTML部分中的换行符导致解析器失败。实际上,<br \>
应为<br \/>
。
这应该在解析之前清理JSON:
$.ajax({
cache: false,
type: "GET",
dataType: "text",
url: "http://bytto.com/wp-json/posts?type[name]=package&filter[category]=eco-tours-petate",
success: function(data){
data = data.replace('<br \>', '<br \/>');
data = data.replace(/(?!\\)(\/)/, '\/');
data = $.parseJSON(data);
}
});
答案 1 :(得分:0)
答案是做下一个简单的事情:data =(data.replace(/ \&gt; / g,&#34;&gt;&#34;));
$.ajax({
cache: false,
type: "GET",
dataType: "text",
url: "http://bytto.com/wp-json/posts?type[name]=package&filter[category]=eco-tours-petate",
success: function(data){
data=(data.replace(/\\>/g , ">"));
data = $.parseJSON(data);
console.log(data);
}
});
这样做可以使我的字符串变成正确的json格式。
谢谢@vard! 感谢大家的帮助!