我正在使用jsoup抓取一些HTML数据,效果很好。现在,我需要提取一些JSON内容(仅JSON,而不是HTML)。我可以使用jsoup轻松做到这一点,还是必须使用另一种方法来做到这一点? jsoup执行的解析是对JSON数据进行编码,因此无法使用Gson正确解析。
谢谢!
最佳答案
虽然很棒,但Jsoup是HTML解析器,而不是JSON解析器,因此在这种情况下它没有用。如果您尝试过,Jsoup会将返回的JSON隐式地放在<html><head>
中,依此类推。你不想那样。 Gson是JSON解析器,因此您绝对需要它。
您的具体问题可能是您不知道如何提供将JSON返回给Gson的URL。在这种情况下,您需要使用 URL#openStream()
来获取它的InputStream
,然后使用 InputStreamReader
将其装饰成Reader
,最后再将其馈送到接受Gson#fromJson()
的 Reader
中。
InputStream input = new URL("http://example.com/foo.json").openStream();
Reader reader = new InputStreamReader(input, "UTF-8");
Data data = new Gson().fromJson(reader, Data.class);
// ...