我正在使用java做一个项目。在这个项目中,我必须从IMDB获取电影数据。到目前为止,我已经了解到,使用与电影id的直接链接,我们可以以JSON文件的形式获取数据。
http://www.omdbapi.com/?i=tt2975590&plot=full&r=json我希望在java中将这些数据发送到JSON数组。有人能帮我做这个吗。谢谢。
发布于 2016-07-16 03:24:32
下载文件的下载功能&返回结果:
private static String download(String urlStr) throws IOException {
URL url = new URL(urlStr);
String ret = "";
BufferedInputStream bis = new BufferedInputStream(url.openStream());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = bis.read(buffer, 0, 1024)) != -1) {
ret += new String(buffer, 0, count);
}
bis.close();
return ret;
}构建JsonObject &转换为JsonArray like that:
try {
String ret = download("http://www.omdbapi.com/?i=tt2975590&plot=full&r=json");
if (ret != null) {
JSONObject items = new JSONObject(ret);
Iterator x = items.keys();
JSONArray jsonArray = new JSONArray();
while (x.hasNext()) {
String key = (String) x.next();
jsonArray.put(items.get(key));
System.out.println(key + " : " + items.get(key));
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}发布于 2016-07-16 03:24:57
从根本上讲,有两项任务需要解决:
一种方法是分别解决这些任务。好的HttpClient库并不短缺(可以想到Apache和Jetty )。也不缺少在Java中操作JSON的好库。(杰克逊,谷歌的GSON,其他人)
然而,Java中与web服务交互的“标准”方式是通过JAX标准进行的,泽西岛是该标准的参考实现。泽西客户端模块将允许您在单个操作中执行HTTP调用,并将JSON反序列化为“与bean兼容的”Java类。请参阅这里的泽西文档:
https://jersey.java.net/documentation/latest/client.html
有关JSON封送处理的信息,请参见:
https://jersey.java.net/documentation/latest/media.html#json
尽管如此,如果您只需要调用一个API,并且只是在寻找最快的方法,而不一定是最精巧的解决方案,那么Apache HTTPComponents和Google GSON可能就是我选择的路线。
祝好运!
https://stackoverflow.com/questions/38407217
复制相似问题