2015-07-20 75 views
0

我不得不使用API​​来显示我的帖子,并且我有一个格式错误的json的问题,因为在返回API的内容部分中有一些html。wordpress api json格式不正确jQuery ajax

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并粘贴到浏览器或下一个URL的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

你能分享你的JSON吗? – vard

+0

当然,只需在Chrome或Firefox中复制并粘贴此网址:http://bytto.com/wp-json/posts?type[name]=package&filter[category]=eco-tours-petate – Roberto2790

回答

0

答案是做下简单的事情:数据=(data.replace(/ \>/g的, “>”));

$.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! 感谢大家的帮助!

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); 
    } 
}); 
+0

可能是一种替代功能\为\ /会做这份工作吗?或替换

Roberto2790

+0

查看更新的答案,我认为它应该做的工作 – vard

+0

没有:(格式再次。Theres一个普通的功能,以逃避所有必须在JSON数据中逃脱的坏字符,以避免任何问题? – Roberto2790