gson在android中的应用

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

 1 public class Person {
 2     private String name;
 3     private int age;
 4     private String city;
 5
 6     public Person(String name, int age, String city){
 7         this.name = name;
 8         this.age = age;
 9         this.city = city;
10     }
11
12     public Person(){}
13
14     public void setName(String name) {
15         this.name = name;
16     }
17
18     public String getName() {
19         return name;
20     }
21
22     public void setAge(int age) {
23         this.age = age;
24     }
25
26     public int getAge() {
27         return age;
28     }
29
30     public void setCity(String city) {
31         this.city = city;
32     }
33
34     public String getCity() {
35         return city;
36     }
37 }

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

 1 import android.support.v7.app.AppCompatActivity;
 2 import android.os.Bundle;
 3 import android.util.Log;
 4
 5 import com.google.gson.Gson;
 6 import com.google.gson.reflect.TypeToken;
 7
 8 import java.lang.reflect.Type;
 9 import java.util.ArrayList;
10 import java.util.LinkedList;
11 import java.util.List;
12
13 public class MainActivity extends AppCompatActivity {
14
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19
20         List<Person> list = new ArrayList<Person>();
21         Person person = new Person("Thh", 23, "CHENGDU");
22         list.add(person);
23         person = new Person("CBB", 22, "CHENGDU");
24         list.add(person);
25         person = new Person("CMT", 18, "TIANJIN");
26         list.add(person);
27
28         Gson gson = new Gson();
29
30         Log.e("ABC", "" + gson.toJson(list));
31
32         Person person1 = new Person();
33         Gson gson1 = new Gson();
34
35         String s=gson.toJson(list);
36         Type lt=new TypeToken<List<Person>>(){}.getType();//获取一个泛型的数据类型
37         List<Person> l=gson1.fromJson(s,lt);
38         for(Person p1:l){
39             Log.e("ABC",p1.getName() + " " + p1.getAge() + " " + p1.getCity());
40         }
41     }
42 }

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
时间: 2024-10-06 18:24:25

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

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

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组

Android中传递对象的三种方法

Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递. 序列化对象可以使用Java的Serializable的接口.Parcelable接口.转化成JSON字符串,可以使用Gson等库. 1.Serializable Model public class Author implement

android中的网络解析xml,json,html框架

android中网络请求回来数据之后,我们要对其解析.请求的返回的结果格式如果不是自定义协议:那么返回的数据通常是xml,json,html形式的数据了. 下面就是针对上面3种格式进行解析. xml解析使用工具:在android中推荐使用pull解析,还有其他的dom,sax解析. json解析使用工具:推荐使用Fastjson,由阿里提供.还有其他的如JackSon,Gson解析. html解析使用工具:推荐使用Jsoup,还有其他的如HtmlParser;关于使用这个,网络上的爬虫就是这样子

Android 中的缓存机制与实现

Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过二级缓存来减少频繁的网络操作,减少流量.提升性能. 一.二级缓存工作机制 所谓二级缓存实际上并不复杂,当Android端需要获得数据时比如获取网络中的图片,我们首先从内存中查找(按键查找),内存中没有的再从磁盘文件或sqlite中去查找,若磁盘中也没有才通过网络获取:当获得来自网络的数据,就以key-

Android中解析Json数据

在开发中经常会遇到解析json的问题 在这里总结几种解析的方式: 方式一: json数据: private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"; 解析jsonData的方法 try { //如果需要解析Json数据,首先要生成一个J

Android中的网络技术基础用法

有的时候用多了Android的一些开源框架用多了,就会把最基础的一些东西给忘了,今天来重温一下Android的网络基础.包括这个Http协议的网络请求,JSON解析. 使用HTTP协议访问网络 在 Android上发送 HTTP 请求的方式一般有两种,HttpURLConnection 和 HttpClient,先来看一下 HttpURLConnection 的用法.首先需要获取到 HttpURLConnection 的实例,一般只需 new出一个 URL 对象,并传入目标的网络地址,然后调用一

Android中Json数据去掉斜杠

数据如下: [ "{\"STCD\":\"172017156159\",\"ItemID\":\"0003002\",\"TM\":\"2020-01-16 19:20:10\",\"NFOINDEX\":0,\"DATAVALUE\":0,\"DATATYPE\":0}", "{\"ST

Android中网络框架的简单封装

个人博客 http://www.milovetingting.cn Android中网络框架的简单封装 前言 Android作为一款主要应用在移动终端的操作系统,访问网络是必不可少的功能.访问网络,最基本的接口有:HttpUrlConnection,HttpClient,而在后续的发展中,出现了Volley,OkHttp,Retrofit等网络封装库.由于各种原因,在实际的项目开发中,我们可能会需要在项目的版本迭代中,切换网络框架.如果对于网络框架没有好的封装,那么当需要切换网络框架时,可能就会

谈谈-Android中的接口回调技术

Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James对Android接口回调技术的理解(结合前人的知识和自己的实践). 使用一个比喻很形象地说明:客户端有个疑问打电话请教服务端,但服务端无法现场给出解答,相互之间约定:服务端一旦有答案,使用电话的方式反馈给客户端. 以上有三个主体:客户端.服务端和接口(方式). 接口回调的原理框图说明: Demo界面