2015-07-20 102 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