今天我們來了解一下如何使用Java從JavaScript獲取JSON數據。首先,我們需要明確一個概念,那就是JSON是JavaScript Object Notation(JavaScript對象表示法)的縮寫,它是一種輕量級的數據交換格式,具有易于讀寫和解析的特點。
那么我們該如何從JavaScript中獲取JSON數據呢?可以使用Java的HttpClient進行網絡請求,獲取到JavaScript生成的HTML頁面,然后使用jsoup從頁面中解析出JavaScript代碼塊,最后通過JavaScript引擎執行代碼,獲取到JSON數據。
//使用HttpClient進行網絡請求,獲取HTML頁面 CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("https://www.example.com"); CloseableHttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); String html = EntityUtils.toString(entity); //使用jsoup解析出JavaScript代碼塊 Document doc = Jsoup.parse(html); Elements scripts = doc.getElementsByTag("script"); for (Element script : scripts) { if (script.attr("type").equals("application/ld+json")) { String jsonData = script.html(); //使用JavaScript引擎執行代碼,獲取到JSON數據 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); Object obj = engine.eval("JSON.parse('" + jsonData + "')"); if (obj instanceof JSONObject) { JSONObject jsonObject = (JSONObject) obj; //使用獲取到的JSON數據進行后續操作 } } } response.close(); httpClient.close();
以上就是從JavaScript獲取JSON數據的簡單示例代碼,需要注意的是,獲取到的JSON數據可能需要進行類型轉換,才能在Java程序中使用。