2011-08-20 181 views
16

我使用JSoup進行身份驗證,然後連接到網站。某些網址具有JSON響應(因爲網站的一部分位於AJAX中)。 JSoup可以處理JSON響應嗎?JSoup:請求JSON響應

Connection.Response doc = Jsoup.connect("...") 
           .data(...) 
           .cookie(...) 
           .header(...) 
           .method(Method.POST) 
           .execute(); 
String result = doc.body() 

在我的情況下身體是「」。

  • 是因爲JSoup不知道如何處理JSON? (不在場外)
  • 或者因爲我的要求有錯誤?

JSoup是否有類似JSON的庫?

+0

嘗試使用:'.header(「Accept」,「application/json」)' – r3dst0rm

回答

0

我不認爲Jsoup會執行Javascript。如果提供的URL返回任何非HTML文本,我相信Jsoup會將它包裝在身體標記或類似的東西中。

看到這個post的建議

+1

是的,當然,JavaScript不會被執行。我不確定JSON字符串是否會被包裹在主體標籤中,或者是否將被刪除以適合格式良好的文檔。 –

0

您應該使用JSON庫來處理JSON數據。

這裏有一些:Click

30

您可以使用此獲取JSON或其他數據格式:

// JSON example 
String json = Jsoup.connect(url).ignoreContentType(true).execute().body(); 
3

嘗試像這樣

使用頭 「接受:文/ JavaScript的」

String InboxJson=Jsoup.connect("https://www.fiverr.com/conversations/Json") 
          .timeout(1000000) 
          .header("Accept", "text/javascript") 
          .userAgent("Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0") 
          .get() 
          .body() 
          .text();