流程介绍

  1. 使用okhttp网络框架进行 get请求,获得json数据

     //一个封装好的工具类的静态方法
    public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) {
    OkHttpClient client = new OkHttpClient();
    CacheControl control =new CacheControl.Builder().build();
    Request request = new Request.Builder()
    .cacheControl(control)
    .url(address)
    .build();
    client.newCall(request).enqueue(callback); }

    之后我们调用这个方法可以访问网站,并获得返回的数据

     HttpUtil.sendOkHttpRequest("http://www.baidu.com" + limit, new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
    Toast.makeText(MainActivity.this, "网络错误", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onResponse(Call call, Response response) throws IOException {
    //获得返回的数据(按照我的例子,访问百度,返回来的数据其实就是html文件里面的内容
    //如果是其他网站,就是返回其定义返回的数据类型)
    String result = response.body().string();
    //调用GSON框架解析json数据,处理完毕后返回一个该相关类的List
    List<Data.ResBean> mlist = HttpUtil.parseJSONWithGSON(result);
    //之后对返回的数据进行处理或者是调用
    mlist.get(1).getXXX();//相关属性的调用
    }
    });
  2. 使用GSONFormat插件将json数据抽象为实体类(插件自动生成)

    去Android Studio里面搜索GSONFormat插件,安装重启之后,写一个类,然后直接按下alt+Ins,选择GSONFormat,之后输入json数据,就可以获得一个对应的实体类了

  3. 使用GSON框架,解析json数据,获得实体类

    下面的方法可以根据自己的需要写

      /**
    * 调用GSON解析json数据
    * @param jsonData json数据
    * @return 返回图片实体类list
    */
    public static List<Data.ResBean> parseJSONWithGSON(String jsonData) {
    //使用轻量级的Gson解析得到的json
    Gson gson = new Gson();
    Data data = gson.fromJson(jsonData, Data.class);
    List<Data.ResBean> mlist = data.getRes();
    return mlist;
    }
  4. 调用所需要的属性即可

    对象调用get方法即可获得相关的属性,自己需要什么就调用什么,这里就不多说了。

  5. 使用Glide等图片框架加载网络图片

     Glide.with(context).load(url).into(imageView);

    我使用的是另外一款Ion显示图片框架,因为之前使用Glide有些bug,第一次可以加载,但刷新数据之后就无法显示了,可能是因为我使用的Glide3.0版本吧,然后觉得Glide4.0版本使用有些懵,就选择了Ion,感觉和Glide差不多,之前的那个bug也是得以解决,就没有想太多了

     	 Ion.with(holder.imageView.getContext())
    .load(url)
    .withBitmap()
    .placeholder(R.drawable.grey)
    .intoImageView(holder.imageView);

Android开发——获得Json数据,并显示图片的更多相关文章

  1. android开发学习 ------- json数据与实体类之间的相互转换

    在网络请求的时候,会返回给我们实体类,我们需要将实体类转化为json字符串,方便处理数据: 有时候也会将json数据转换为实体类. 在Android Studio中,json要互相转换,需要用到gso ...

  2. Android中使用HttpURLConnection实现GET POST JSON数据与下载图片

    Android中使用HttpURLConnection实现GET POST JSON数据与下载图片 Android6.0中把Apache HTTP Client全部的包与类都标记为deprecated ...

  3. Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容

    >>点击这里下载完整html源码<< 截图如下: 滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下: <script type="t ...

  4. Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  5. Android开发 定时任务清理数据

    原文地址:Android开发 定时任务清理数据 | Stars-One的杂货小窝 公司项目,需要整定时任务,对数据进行清理,需要在每天凌晨0:00进行数据的清理,使用了Alarm和广播的方式来实现 P ...

  6. ★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)

    例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import ja ...

  7. Android开发 从代码里设置Drawable图片不显示的问题

    问题描述 我们从代码里获得Drawable在设置给View时会发现,图片不显示的问题.比如如下代码: Drawable drawable = getResources().getDrawable(R. ...

  8. Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用

    前言 啦啦啦各位小伙伴们许久不见了~学期末和过年期间自己忙着做其他事没能及时更新Android开发系列课程的博客,实在是罪过罪过~ 好啦~废话不多说,进入我们今天的主题.今天我们将和大家学习其他的数据 ...

  9. Android(java)学习笔记208:Android中操作JSON数据(Json和Jsonarray)

    1.Json 和 Xml       JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

随机推荐

  1. framework7 入门(数据获取和传递)

    数据获取 framework7自带request方法 , var app = new Framework7({...});app.request(parameters) 或者 Framework7.r ...

  2. 【转载】.NET压缩/解压文件/夹组件

    转自:http://www.cnblogs.com/asxinyu/archive/2013/03/05/2943696.html 阅读目录 1.前言 2.关于压缩格式和算法的基础 3.几种常见的.N ...

  3. 查询Python版本

  4. 操作系统中 heap 和 stack 的区别

    操作系统中 heap 和 stack 的区别heap 和 stack是什么堆栈是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除.==在单片机 ...

  5. SDL 开发实战(三):使用 SDL 绘制基本图形

    在上文 SDL 开发实战(二):SDL 2.0 核心 API 解析 我们讲解了SDL最核心的API,并结合Hello World代码了解了SDL渲染画面的基本原理. 本文我们来讲一下,如何使用SDL的 ...

  6. [Swift]LeetCode311. 稀疏矩阵相乘 $ Sparse Matrix Multiplication

    Given two sparse matrices A and B, return the result of AB. You may assume that A's column number is ...

  7. Python面试真题第二节

    26.字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳" 27.filter方法求 ...

  8. Java数据结构与算法 - 外部存储

    Q: 什么是外部存储? A: 外部存储特指某类磁盘系统,例如在大多数台式电脑或服务器中的硬盘. Q: 如何访问外部存储? A: 我们所学的数据结构都是假设数据存储在内存中,但是,在很多情况下要处理的数 ...

  9. CentOS随笔——Service与防火墙关闭

    Service后台服务管理 基本语法 service 服务名 start 开启服务 service 服务名 stop 关闭服务 service 服务名 restart 重启服务 service 服务名 ...

  10. Linux 虚拟网络设备详解之 Bridge 网桥

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面几篇文章介 ...