读取 JSON 内容

2022-09-02 20:38:34

我正在使用jsoup来抓取一些HTML数据,效果很好。现在我需要提取一些JSON内容(只有JSON,而不是HTML)。我可以使用jsoup轻松完成此操作,还是必须使用其他方法执行此操作?jsoup执行的解析正在对JSON数据进行编码,因此它不能使用Gson正确解析。


答案 1

虽然很棒,但Jsoup是一个HTML解析器,而不是JSON解析器,所以它在这种情况下是无用的。如果您尝试过,Jsoup会将返回的JSON隐式放在a中,依此类推。你不想拥有它。Gson是一个JSON解析器,所以你肯定需要它。<html><head>

您的具体问题可能是您不知道如何向Gson提供返回JSON的URL。在这种情况下,你需要使用URL#openStream()来获取它,并使用InputStreamReader将其修饰成一个最终可以提供给Gson#fromJson()的,它接受一个.InputStreamReaderReader

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);
// ...

答案 2

Jsoup 不是为解析 JSON 而设计的。使用Gson(或任何其他java JSON库)。要使用 Jsoup 获取远程内容,请使用以下命令:

Connection  con = HttpConnection.connect(url);
con.method(Method.POST).data(data.params).ignoreContentType(true);
Response resp = con.execute();
String body = resp.body();

推荐