wordpress api json malformed-jQuery ajax

时间:2015-07-20 15:32:09

标签: jquery ajax json wordpress api

我必须使用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。

2 个答案:

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