android豆瓣apiv2电影/音乐/书籍搜索及图片异步下载/json解析
来源:互联网 发布:纯音听力测试软件 编辑:程序博客网 时间:2024/05/08 14:41
豆瓣api_v2版本开始返回的是json,然后android里面自带json解析的类库,所以感觉非常容易就解析了。
本实例采用了把搜索结果json解析到ListView中,图片异步下载,点击某个item跳转到详细信息的界面。
解析过程:
List<SingleEntity> result = new ArrayList<SingleEntity>();String ch = URLEncoder.encode(key, "utf-8");String uString = "http://api.douban.com/v2/movie/search?q=" + ch;URL url = new URL(uString);StringBuilder builder = new StringBuilder();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));for (String s = bufferedReader.readLine(); s != null; s = bufferedReader.readLine()) {builder.append(s);}JSONArray jsonArray = null;try {JSONObject jsonObject = new JSONObject(builder.toString());jsonArray = jsonObject.getJSONArray("subjects");} catch (JSONException e) {e.printStackTrace();}for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject = (JSONObject) jsonArray.opt(i);try {JSONObject imagesObj = jsonObject.getJSONObject("images");SingleEntity movieBriefPojo = new SingleEntity();movieBriefPojo.setMovieName(jsonObject.getString("title"));movieBriefPojo.setAuthorName(jsonObject.getString("year"));movieBriefPojo.setFirstUrl(jsonObject.getString("id"));movieBriefPojo.setImageUrl(imagesObj.getString("small"));result.add(movieBriefPojo);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return result;}
这是搜索音乐然后解析结果:
public List<SingleEntity> findMusicXml(String keyworld) throws IOException {List<SingleEntity> result = new ArrayList<SingleEntity>();String ch = URLEncoder.encode(keyworld, "utf-8");String uString = "http://api.douban.com/v2/music/search?q=" + ch;URL url = new URL(uString);StringBuilder builder = new StringBuilder();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));for (String s = bufferedReader.readLine(); s != null; s = bufferedReader.readLine()) {builder.append(s);}JSONArray jsonArray = null;try {JSONObject jsonObject = new JSONObject(builder.toString());jsonArray = jsonObject.getJSONArray("musics");} catch (JSONException e) {e.printStackTrace();}for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject = (JSONObject) jsonArray.opt(i);try {JSONObject attrs = jsonObject.getJSONObject("attrs");JSONArray singerArray = attrs.getJSONArray("singer");SingleEntity movieBriefPojo = new SingleEntity();movieBriefPojo.setMovieName(attrs.getJSONArray("title").getString(0));movieBriefPojo.setAuthorName(singerArray.getString(0));movieBriefPojo.setFirstUrl(jsonObject.getString("id"));movieBriefPojo.setImageUrl(jsonObject.getString("image"));result.add(movieBriefPojo);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return result;}
这是搜索书籍然后解析结果
public List<SingleEntity> findBookXml(String keyworld) throws Exception {{List<SingleEntity> result = new ArrayList<SingleEntity>();String ch = URLEncoder.encode(keyworld, "utf-8");String uString = "http://api.douban.com/v2/book/search?q=" + ch;URL url = new URL(uString);StringBuilder builder = new StringBuilder();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));for (String s = bufferedReader.readLine(); s != null; s = bufferedReader.readLine()) {builder.append(s);}JSONObject jsonObject = new JSONObject(builder.toString());JSONArray books = jsonObject.getJSONArray("books");for (int i = 0; i < books.length(); i++) {JSONObject book = (JSONObject) books.opt(i);SingleEntity bookSingleEntity = new SingleEntity();bookSingleEntity.setMovieName(book.getString("title"));//书本名称bookSingleEntity.setFirstUrl(book.getString("id"));//书籍具体的地址bookSingleEntity.setImageUrl(book.getString("image"));//书籍图片bookSingleEntity.setAuthorName(book.getJSONArray("author").optString(0));//作者result.add(bookSingleEntity);}return result;}}
其从图片的异步下载用了某个博客中的方法,但是我不记得详细地址了请原谅,下面是运行图
下载地址:http://download.csdn.net/detail/qq634416025/5296520
- android豆瓣apiv2电影/音乐/书籍搜索及图片异步下载/json解析
- android xml pull 解析 豆瓣书籍
- android 图片音乐下载
- 豆瓣音乐下载分析
- android解析xml-豆瓣电影API的xml解析实例
- Android 豆瓣电影-开源
- Android 豆瓣电影- RecyclerView
- Android异步加载访问网络图片-解析json
- android异步下载图片
- 批量下载豆瓣音乐节目单
- R语言—豆瓣搜索电影
- Android 图片异步下载及缓存--Multithreading For Performance
- python爬虫(豆瓣影评requests版并下载电影封面图片)
- 微信小程序豆瓣电影实例源码下载
- android 基于豆瓣 Api 的客户端,包含电影分类,图书分类,电影榜单,收藏功能,搜索功能。
- 关于爬取豆瓣电影和豆瓣书本的图片
- Android异步下载网络图片
- Android异步下载网络图片
- jni动态注册
- VC++动态链接库编程之MFC规则DLL
- MySQL详解:日志类型
- 如何让照片小于20K
- 年轻的优秀博士:网络牛人刘云浩,王新兵,朱其立
- android豆瓣apiv2电影/音乐/书籍搜索及图片异步下载/json解析
- 哈佛为什么群星闪耀?
- 牛人刘云浩
- 主机通过ssh无法连接虚拟机
- SQL Server 重置Identity标识列的值(INT爆了)
- Oracle创建用户并授权
- VC++动态链接库编程之MFC扩展 DLL
- 经典C++笔试题收藏
- java-数组的应用