读取JSON内容

| 我正在使用jsoup抓取一些HTML数据,效果很好。现在,我需要提取一些JSON内容(仅JSON,而不是HTML)。我可以使用jsoup轻松做到这一点,还是必须使用另一种方法来做到这一点? jsoup执行的解析是对JSON数据进行编码,因此无法使用Gson正确解析。 谢谢!     
已邀请:
        虽然很棒,但Jsoup是HTML解析器,而不是JSON解析器,因此在这种情况下它没有用。如果您尝试过,Jsoup会将返回的JSON隐式放在ѭ0中,依此类推。你不想那样。 Gson是JSON解析器,因此您绝对需要它。 您的具体问题可能是您不知道如何提供将JSON返回给Gson的URL。在这种情况下,您需要使用
URL#openStream()
获得
InputStream
,然后使用use3ѭ将其装饰为
Reader
,最后可以将其馈送到接受
Reader
Gson#fromJson()
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);
// ...
    
        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();
    
        Jsoup不会解析JSON,但是可以轻松地获取JSON数据。
package com.zetcode;

import com.google.gson.Gson;
import java.io.IOException;
import org.jsoup.Jsoup;

class TimeData {

    private String time;
    private Long milliseconds_since_epoch;
    private String date;

    @Override
    public String toString() {
        return \"TimeData{\" + \"time=\" + time + \", milliseconds_since_epoch=\" 
                + milliseconds_since_epoch + \", date=\" + date + \'}\';
    }
}


public class GsonReadWebPage {

    public static void main(String[] args) throws IOException {

        String webPage = \"http://time.jsontest.com\";

        String data = Jsoup.connect(webPage).ignoreContentType(true).execute().body();

        Gson gson = new Gson();
        TimeData td = gson.fromJson(data, TimeData.class);

        System.out.println(td);
    }
}
该示例使用JSoup从ѭ10中读取JSON数据 并使用Gson解析JSON。要执行此示例,您需要Jsoup 和Gson依赖关系。     
        我不了解jsoup,但如果它是有效的JSON,则Gson应该能够解码(可能需要为您的自定义类使用一些自定义反序列化器)。 如果它不是有效的JSON并且出现错误,则jsoup中存在错误。     
        我已经看到了很多答案,并且人们在编写有价值的代码页面,我不知道为什么,但是您可以使用GSON轻松地做到这一点。
/**
 * Convert json string to json object
 */
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

private JsonObject getResAsJson(String response) {
    return new JsonParser().parse(response).getAsJsonObject();
}
    

要回复问题请先登录注册