我想从OMDB API获得电影数据,它是JSON文本。我正在使用Java对此和包JSON-imple进行解码。
我要解码的URL例如:http://www.omdbapi.com/?t=icarus
结果(直接复制和粘贴,而非结构化):
{“标题”:“ Icarus”,“年份”:“ 2010”,“额定”:“ TV-14”,“发布”:“ 2010年12月10日”,“运行时间”:“ 42分钟”,“类型”: “冒险,戏剧,浪漫”,“导演”:“ Mairzee Almas”,“作家”:“ Alfred Gough(创作者),Jerry Siegel(角色由超人创建),Miles Millar(创作者),Joe Shuster(角色由创作者) :超人),阿尔弗雷德·高夫(由电视开发),迈尔斯·米拉尔(由电视开发),吉纳维芙·斯伯林”,“演员”:“汤姆·韦林,埃里卡·杜兰斯,卡西迪·弗里曼,贾斯汀·哈特利”,“剧情”:“ VRA威胁加剧,克拉克主动采取行动,关闭了t望塔,并宣布联盟正式进入地下,但这足以制止小跑和斯拉德·威尔逊……”,“语言”:“英语”,“国家/地区”:“美国“,”奖项“:” N / A“,”海报“:” http://ia.media-imdb.com/images/M/MV5BMjIwNDQ2MjM5OV5BMl5BanBnXkFtZTcwODU4NzU0NA@@._V1_SX300.jpg“,” Metascore“:” N / A“,” imdbRating“:” 8.6“,” imdbVotes“:” 367“,” imdbID “:” tt1628582“,”类型“:”情节“,”响应“:”真实“}
我的按钮下的代码:
String url = "http://www.omdbapi.com/?t=" + jListFilms.getSelectedValue().toString();
try {
JSONParser parser = new JSONParser();
Object obj = parser.parse(url);
JSONObject jsonObj = (JSONObject) obj;
String title = (String) jsonObj.get("Title") ;
System.out.println(title);
} catch (ParseException e){
System.out.println(e);
}
当我打印出可变标题时
位置0处的意外字符(h)。
有谁知道我为什么没有这部电影的标题?
最佳答案
您的代码正在执行的操作是解析以“ http://”开头的字符串URL,因此h在位置0。
您需要在该URL发出HTTP GET请求,以取回JSON。
Here's an answer for how to issue the GET request