我正在尝试编写一段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