首先需要建一个实体类 Person.java 来对应json

需要注意的是实体类中的变量名必须和json传过来的key值完全一样(大小写)

 public class Person {
private String name;
private int age;
private String city; public Person(String name, int age, String city){
this.name = name;
this.age = age;
this.city = city;
} public Person(){} public void setName(String name) {
this.name = name;
} public String getName() {
return name;
} public void setAge(int age) {
this.age = age;
} public int getAge() {
return age;
} public void setCity(String city) {
this.city = city;
} public String getCity() {
return city;
}
}

然后这是编码和解码的具体实现

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); List<Person> list = new ArrayList<Person>();
Person person = new Person("Thh", 23, "CHENGDU");
list.add(person);
person = new Person("CBB", 22, "CHENGDU");
list.add(person);
person = new Person("CMT", 18, "TIANJIN");
list.add(person); Gson gson = new Gson(); Log.e("ABC", "" + gson.toJson(list)); Person person1 = new Person();
Gson gson1 = new Gson(); String s=gson.toJson(list);
Type lt=new TypeToken<List<Person>>(){}.getType();//获取一个泛型的数据类型
List<Person> l=gson1.fromJson(s,lt);
for(Person p1:l){
Log.e("ABC",p1.getName() + " " + p1.getAge() + " " + p1.getCity());
}
}
}

Logcat中显示结果:

10-22 01:22:01.444 16669-16669/? E/ABC: [{"age":23,"city":"CHENGDU","name":"Thh"},{"age":22,"city":"CHENGDU","name":"CBB"},{"age":18,"city":"TIANJIN","name":"CMT"}]
10-22 01:22:01.448 16669-16669/? E/ABC: Thh 23 CHENGDU
10-22 01:22:01.448 16669-16669/? E/ABC: CBB 22 CHENGDU
10-22 01:22:01.449 16669-16669/? E/ABC: CMT 18 TIANJIN

gson在android中的应用的更多相关文章

  1. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  2. Android中使用Gson解析JSON数据

      Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...

  3. Android中Retrifit使用总结

    Android中网络请求框架Retrofit的使用注意事项 1.Retrofit是基于OkHttp网络请求框架的二次封装而已,懂Okhttp的小伙伴,那么Retrofit也就基本都会. 2.Retro ...

  4. Android 中的Json解析工具fastjson 、序列化、反序列化

    Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...

  5. Android 中的缓存机制与实现

    Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过二 ...

  6. Android 中解析 JSON

    有什么不懂的可以去官网去看看:www.json.org 在google android中也有关于解析JSON的类库:JsonReader,但是只能在3.0以后的版本中才可以用,在这里我们用google ...

  7. 1.Android中解析json程序代码

    Android程序解析json数据可以通过gson的方式,这种情况需要导入相应的jar包.测试代码如下: @Override protected void onCreate(Bundle savedI ...

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

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

  9. Android中传递对象的三种方法

    Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者I ...

随机推荐

  1. Hibernate常见优化策略

    ① 制定合理的缓存策略(二级缓存.查询缓存). ② 采用合理的Session管理机制. ③ 尽量使用延迟加载特性. ④ 设定合理的批处理参数. ⑤ 如果可以,选用UUID作为主键生成器. ⑥ 如果可以 ...

  2. Makefile文件应用——complicated项目

    学习资料 本文主要参考资料:驾驭Makefile(李云).pdf Complicated项目 需求: (1)object文件放到objs目录下 (2)可执行文件放到exes目录下 (3)增加头文件依赖 ...

  3. Sqoop-将Hive ORC表导出到MySQL

    Sqoop-将Hive ORC表导出到MySQL sqoop export --connect jdbc:mysql://localhost:3306/test --username root --p ...

  4. Dijkstra算法 - 最短路径算法

    2017-07-26 22:30:45 writer:pprp dijkstra算法法则:设置顶点集合S,首先将起始点加入该集合,然后根据起始点到其他顶点的路径长度, 选择路径长度最小的顶点加入到集合 ...

  5. Mac安装搭建sublimeText3开发Nodejs环境

    原文] [基本环境 安装Nodejs 这个直接就可以去官网下载就可以了.Nodejs官网 根据自己的PC系统类型选择对应的版本下载之后就可以了. 安装SublimeText3 这个也是直接去Subli ...

  6. 你知道uwsgi???

    第一步,打开https://www.google.com.hk 第二步,输入how to restart uwsgi

  7. Mongodb笔记(二) Index

    版本:mongodb3.4; Index  : 如果mongodb不能使用索引进行排序,就会将数据放入内存中进行排序,而当内存使用超过32MB时,就会报错. 在创建索引时,应确保索引的选择力,避免多余 ...

  8. CheckBox复选框控件

    CheckBox复选框控件 一.简介 1. 2.类结构图 二.CheckBox复选框控件使用方法 这里是使用java代码在LinearLayout里面添加控件 1.新建LinearLayout布局 2 ...

  9. poj3311 状压dp+floyd

    先floyd预处理一遍dis,枚举所有状态,dp[ i ] [ j ]表示 以  j  为终点的状态 i 使用最小的时间 #include<map> #include<set> ...

  10. 51nod 1287 线段树

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1287 简单的线段树题目,直接写个二分查找大于等于x的最小位置就好了. # ...