首先需要建一个实体类 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. LeetCode——Word Break

    Question Given a string s and a dictionary of words dict, determine if s can be segmented into a spa ...

  2. thinkPHP中怎么使用阿里云的sdk

    使用阿里云官方给的方法总会报错 Class 'Home\Controller\DefaultProfile' not found 这样是因为namespace的原因,将aliyun sdk 放在con ...

  3. 给定字符串数组,用map的key保存数组中字符串元素,value保存字符串元素出现次数,最后统计个字符串元素出现次数

    import java.util.HashMap; public class map1 { public static void main(String[] args) { String[] arra ...

  4. NFV及vIMS的部署实施

    随着5G和物联网等领域的快速发展,移动数据业务飞速增长,而传统电信网络基于专用硬件的架构和封闭式的网元,已经成为运营商拓展新业务的严重障碍.NFV能够根据用户和业务需求灵活动态地进行网络资源配置,实现 ...

  5. Java class、Object、Class 的区别

    Java的对象模型中: 所有的类都是Class类的实例,Object是类,那么Object也是Class类的一个实例. 所有的类都最终继承自Object类,Class是类,那么Class也继承自Obj ...

  6. redis之linux下的安装

    安装 1.在/usr/local下新建redis文件夹 #mkdir redis 2.去redis.io下载redis安装包 # wget http://download.redis.io/relea ...

  7. 解决tomcat中jdk1.5运行日志相差8小时问题

    tomcat运行日志时间与电脑中的时间相差8小时,原因是因为jdk1.5的原因: 解决办法是在jdk运行的时候加上默认参数: Window->Preferences->Java->I ...

  8. springboot项目执行controller方法时进入慢的问题

    今天在部署springboot项目到阿里云时,出现登录方法执行特别慢的问题.刚开始以为是卡死了,等了3,4分钟才进去,最后会出现如下信息: 2018-01-28 15:38:36.958 INFO 4 ...

  9. TF随笔-4

    >>> import tensorflow as tf>>> a=tf.constant([[1,2],[3,4]])>>> b=tf.const ...

  10. 在Virtualbox虚拟机中配置使用ROS Spark机器人(Orbbec Astra 和 Xtion)

    在虚拟机中配置使用ROS Spark,在Virtualbox中使用USB外设包括Orbbec Astra 和 Xtion深度摄像头和底盘. 虚拟机使用外接设备时,会遇到一些问题.不过随着虚拟机功能的逐 ...