我正在嘗試編寫一段Java代碼,該代碼應該能夠獲取Google圖像搜索的結果。稍後,我還希望從Google圖片搜索中下載所有圖片並提供查詢。現在,我寫了這個代碼,但是當我運行它,它給了錯誤「的JSONObject [」 responseData「]是不是一個JSONObject。」從Google下載圖像使用Java進行圖像搜索
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import com.fasterxml.jackson.core.JsonParser;
import twitter4j.JSONObject;
public class TestImage {
public static void main(String[] args)
{
try
{
URL url = new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
"v=1.0&q=barack%20obama&userip=INSERT-USER-IP");
URLConnection connection = url.openConnection();
connection.addRequestProperty("Referer", "");
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null)
{
builder.append(line);
}
JSONObject json = new JSONObject(builder.toString());
String imageUrl = json.getJSONObject("responseData").getJSONArray("results").getJSONObject(0).getString("url");
// JsonParser jsonParser = new JsonParser();
//((Object) jsonParser).parse(json).getAsJsonObject();
BufferedImage image = ImageIO.read(new URL(imageUrl));
JOptionPane.showMessageDialog(null, "", "", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(image));
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "Failure", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
}`
請幫助我有什麼錯誤,因爲我對Java很陌生。
但上面的api只返回JSON格式的結果。此外,是否有任何圖像搜索的替代品? –
你的編譯器說你的錯誤是響應不是json(例如,缺少一個閉括號或其他東西)..我不這樣做谷歌API的一面,所以我不能幫你。 – Verzlo