Gson的基本介绍和使用
JSON是我们在实际开发最常用的数据交换格式,GSON则是谷歌提供的用来解析Json数据的一个Java类库,在进行Gson介绍之前我们通过以下几个部分对Gson进行深入的了解。
一、JSON的简介
二、GSON简介和特点
三、GSON的基本使用
{"rating": {"max": 10, "numRaters": 348, "average": "7.0", "min": 0}, "subtitle": "", "author": ["[日] 片山恭一"], "pubdate": "2005-1", "tags": [{"count": 136, "name": "片山恭一", "title": "片山恭一"}, {"count": 63, "name": "日本", "title": "日本"}, {"count": 61, "name": "日本文学", "title": "日本文学"}, {"count": 38, "name": "小说", "title": "小说"}, {"count": 32, "name": "满月之夜白鲸现", "title": "满月之夜白鲸现"}, {"count": 15, "name": "爱情", "title": "爱情"}, {"count": 8, "name": "純愛", "title": "純愛"}, {"count": 8, "name": "外国文学", "title": "外国文学"}], "origin_title": "", "image": "https://img1.doubanio.com/mpic/s1747553.jpg", "binding": "平装", "translator": ["豫人"], "catalog": "", "pages": "180", "images": {"small": "https://img1.doubanio.com/spic/s1747553.jpg", "large": "https://img1.doubanio.com/lpic/s1747553.jpg", "medium": "https://img1.doubanio.com/mpic/s1747553.jpg"}, "alt": "http://book.douban.com/subject/1220562/", "id": "1220562", "publisher": "青岛出版社", "isbn10": "7543632608", "isbn13": "9787543632608", "title": "满月之夜白鲸现", "url": "http://api.douban.com/v2/book/1220562", "alt_title": "", "author_intro": "", "summary": "那一年,是听莫扎特、钓鲈鱼和家庭破裂的一年。说到家庭破裂,母亲怪自己当初没有找到好男人,父亲则认为当时是被狐狸精迷住了眼,失常的是母亲,但出问题的是父亲……。", "price": "15.00元"
}
我们解析出其中的title、publisher、summary和数组tags。
<uses-permission android:name="android.permission.INTERNET"/>
2、请求网络数据并进行解析
package com.example.gsondemo;import java.util.ArrayList;import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.widget.Toast;import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.example.bean.Book;
import com.example.bean.Tag;
import com.google.gson.Gson;public class MainActivity extends ActionBarActivity
{//请求接口private String url = "https://api.douban.com/v2/book/1220562";@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getData();}/*** 获取网络数据*/private void getData(){//创建请求对象StringRequest request = new StringRequest(url, new Listener<String>() {@Overridepublic void onResponse(String response){Log.e("info", response);dealData(response);}}, new ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error){Toast.makeText(MainActivity.this, "网络请求出错", Toast.LENGTH_SHORT).show();}});//把请求对象加入请求队列里面new Volley().newRequestQueue(getApplicationContext()).add(request);}public void dealData(String result){//实例化Gson对象Gson gson = new Gson();//把json字符串转化为对象Book book = gson.fromJson(result, Book.class);ArrayList<Tag> list = book.getTags();for (int i = 0; i < list.size(); i++){Tag tag = list.get(i);Log.e("name", tag.getName());}Toast.makeText(MainActivity.this, "标题:" + book.getTitle() + " 出版社:" + book.getPublisher()+ " Tag:" + book.getTags().size(), 1).show();}
}
实体类Book:
package com.example.bean;import java.util.ArrayList;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> getTags(){return tags;}public void setTags(ArrayList<Tag> tags){this.tags = tags;}}
Tag类:
package com.example.bean;public class Tag
{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;}}
好了,GSON的使用就是那么简单。
Gson的基本介绍和使用相关推荐
- Okhttp、Volley和Gson的简单介绍和配合使用
1.okhttp是一个高效的.快速的被谷歌认可的,支持HTTP/2和SPDY volley是一个方便网络任务库,可以负责请求.加载.缓存等同步问题,也可以处理图片.JSON.文本操作起来比较简单 gs ...
- Android Gson使用详解
Json 是一种文本形式的数据交换格式,比 xml 更为轻量.Json 的解析和生成的方式很多,在 Android 平台上最常用的类库有 Gson 和 FastJson 两种,这里要介绍的是 Gson ...
- Android中的JSON解析方式:json; Gson ; Fastjson
本文主要介绍Json数据的解析 ----a,json数据的介绍 ----b,json数据的解析 ----c,gson数据的解析,谷歌公司的一种格式 ----d,fastjson数据的解析,阿里巴巴的一 ...
- 利用Gson对json进行flatten(扁平化)处理
目录 一.Gson的简单介绍 二.通过构建json树实现两层json的解析 三.通过递归实现多层json的解析 一.Gson的简单介绍 Gson是Google发布的一个处理json的java库.通过使 ...
- android gson教程,Android Gson使用详解
一.Gson的基本用法 1.1.Gson对象 在进行序列化与反序列操作前,需要先实例化一个 com .google.gson.Gson 对象,获取 Gson 对象的方法有两种//通过构造函数来获取 G ...
- Retrofit 入门和提高
retrofit 简单的: 1.首先 compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' compile 'com.squareup.okhttp ...
- JSON入门之二:org.json的基本用法
java中用于解释json的主流工具有org.json.json-lib与gson,本文介绍org.json的应用. 官方文档: http://www.json.org/java/ http://de ...
- 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前一篇文章中,我们学习了如何进行逆向工程和TcpDump进行抓包,获取我们的数据接口,那么有了数据之后,我 ...
- 最全Gson使用介绍,通俗易懂。
Gson介绍 GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串 在使用Gson ...
- 一起来开发Android的天气软件(一)——功能规格介绍
从今天开始呢,打算来介绍如何开发一款Android的天气软件,其中运用到的基础知识点也比较多,比较适合初学或者刚接触Android开发不久的同学一起来学习交流和切磋! 那么我先对这个天气软件进行需求分 ...
最新文章
- 【MATLAB】数组运算
- autosar can协议栈 源码解读_我用一晚上时间给女朋友讲懂CAN总线的AUTOSAR网络管理...
- Pocket pc模拟器与PC机传输文件的方法
- 创建一个圆类Circle的对象,分别设置圆的半径计算并分别显示圆半径、圆面积、圆周长。...
- 迷失的毕业生——小余答疑(一)
- C++中绘图工具EasyX基本操作
- 前端学习(3335):ant design中按钮尺寸的大小
- CUDA编程之快速入门-----GPU加速原理和编程实现
- java 坦克大战_java课程设计之坦克大战
- 服务器芯片组思维导图,服务器思维导图
- vuedraggable嵌套块拖拽_vuedraggable 拖拽 应用 不同列表之间的拖拽
- 破解WIFI密码之密码字典
- MySQL OCP认证(文末附参考题)
- c语言pow函数原型_c语言中pow函数的用法是什么?_后端开发
- 英语不好学计算机特长,指导:英语学不好,是因为你没养成这些好习惯
- 【基于SVM的数据分类预测——意大利葡萄酒种类识别】的一些笔记
- 京剧猫主题曲用计算机弹奏,京剧猫电脑版
- JavaEE|IO、存储、硬盘、文件系统相关常识
- 重装win10遇到的坑
- HEG工具处理MOD02的产品,输出多波段