废话不多说,什么json是轻量级数据交换标准;自己百度去深入了解;这里有三种json解析工具。本人只用过其中两种:

    1.Google Json利器之Gson   评价:简单,方便。

  2.阿里巴巴 Json利器之FastJson 评价:大数据的性能还是蛮快的。

  3.IBM Json利器之Json4J   少人用。

首先导入volley.jar和gson.jar的包;

在主配置文件里面加上internet权限‘

然后就是代码:

mainActivity.java

public class MainActivity extends Activity {
    //json数据的来源;豆瓣读书的接口。
    private String url = "https://api.douban.com/v2/book/1220562";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getData();
    }
    private void getData() {
        // TODO Auto-generated method stub
        StringRequest stringRequest = new StringRequest(url, new Listener<String>() {

@Override
            public void onResponse(String arg0) {
                Log.i("info", arg0);
                dealData(arg0);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError arg0) {
                // TODO Auto-generated method stub
            }
        });
        //使用Volley发送网路请求
        new Volley().newRequestQueue(getApplicationContext()).add(stringRequest);    
    }
    protected void dealData(String result) {
//json转化为对象;
        Gson gjson = new Gson();
        Book book = gjson.fromJson(result,Book.class);
        Log.i("info",book.getPublisher()+","+book.getSummary()+","+book.getTitle()+","+book.getTag().size());
    }

两个实体类:

Book.java

public class Book {
    private String title;
    private String publisher;
    private String summary;
    private ArrayList<Tag> tags;
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getPublisher() {
        return publisher;
    }
    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public ArrayList<Tag> getTag() {
        return tags;
    }
    public void setTag(ArrayList<Tag> tags) {
        this.tags = tags;
    }   
}

Tag.java

public class Tag {
/*
      "count": 133,
    "name": "片山恭一",
    "title": "片山恭一"
 */
    private String count;
    private String name;
    private String title;
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}

android json解析详细介绍之gson的更多相关文章

  1. Android JSON 解析库的使用 - Gson 和 fast-json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  2. android JSON解析之JSONObject与GSON

    1.写在前面 JSON数据是android网络开发中常见的数据格式,JSON最常见的传输方法是使用HTTP协议,关于android开发中HTTP协议的使用方法可参考我的另一篇随笔android网络编程 ...

  3. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  4. Android Json解析与总结

    一.JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  5. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

  6. android json 解析简单实例

    Android JSON解析跟JAVA 的JSON解析原理是一样的. Android自带的JSON方式跟方便,不需要导包啥的.不深究原理了,直接上代码: public class JsonActivi ...

  7. android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】

    android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...

  8. Android JSON 解析关键代码

    Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成 ...

  9. android Json解析详解(详细代码)

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

随机推荐

  1. string.Join()的用法

    List<string> list = new List<string>(); list.Add("I"); list.Add("Love&quo ...

  2. javascript判断对象

    var assert = require('chai').assert; describe('Array', function() { describe('#indexOf()', function( ...

  3. 《Pro Git》阅读随想

    之前做版本管理,我使用最多的是SVN,而且也只是在用一些最常用的操作.最近公司里很多项目都开始上Git,借这个机会,我计划好好学习一下Git的操作和原理,以及蕴含在其中的设计思想.同事推荐了一本< ...

  4. [ASP.NET]

    public static int iA; protected void Button1_Click(object sender, EventArgs e) { //Label1.Text Respo ...

  5. Logstash 父子关系 配置

    最近在使用Lostash的过程中遇到了一个问题:在一个log文件里包含两类数据,而且两类数据之间存在父子关系,那如何使用lostash的configuration实现这个需求呢 思路: 首先定义父事件 ...

  6. 错误提示sudo: no tty present and no askpass program specified Sorry, try again.

    php调用shell脚本的svnup.php文件内容: <?set_time_limit(0);//$output = array();$ret = 0;exec("/usr/bin/ ...

  7. 用Java写算法之归并排序

    转自:http://flyingcat2013.blog.51cto.com/7061638/1281026 前面的三种排序算法(冒泡排序,选择排序,插入排序)在平均情况下均为O(n^2)复杂度,在处 ...

  8. Generics and Collection (2)

    Integer is a subtype of NumberDouble is a subtype of NumberArrayList<E> is a subtype of List&l ...

  9. Redis(二) 扩展

    事务multi ... exec  之间的操作先进入等待队列,到exec时一起执行                事物的所有操作结果都是一起返回的,所以前一条指令的结果无法作为后一条指令的参数     ...

  10. 关于SharpZipLib压缩分散的文件及整理文件夹的方法

    今天为了解决压缩分散的文件时,发现想通过压缩对象直接进行文件夹整理很麻烦,因为SharpZipLib没有提供压缩进某个指定文件夹的功能,在反复分析了SharpZipLib提供的各个接口方法后,终于找到 ...