Android Gson生成、解析json数据
2016-06-28 11:28
369 查看
package com.datong.gsondemo; /** * Created by liyongjian on 2016/6/28. */ public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
二、
HashMap<String, String> map = new HashMap<>();
map.put("key", "value");
Log.e("TAG", gson.toJson(map));//{"key":"value"}
map.clear();
map.put("key0", "value0");
map.put("key1", "value1");
map.put("key2","value2");
Log.e("TAG",gson.toJson(map));//{"key2":"value2","key0":"value0","key1":"value1"}
/**
* 将person对象转为json
*/
Person person = new Person("Andy",3);
String personJson = gson.toJson(person);
Log.e("TAG", "person" + personJson);//person{"age":3,"name":"Andy"}
/**
* 将List<Person> 转为JsonArray
*/
List<Person> list = new ArrayList<>();
for(int i = 0; i < 3; i++){
list.add(new Person("Andy_" + i, i));
}
String personJsonArray = gson.toJson(list);
Log.e("TAG", "list " + personJsonArray);//list [{"age":0,"name":"Andy_0"},{"age":1,"name":"Andy_1"},{"age":2,"name":"Andy_2"}]
/**
* 将personJson还原成对象
*/
Person person1 = gson.fromJson(personJson,Person.class);
Log.e("TAG",person1.getName() + " " + person1.getAge());//person1: Andy 3
/**
* 将personJsonArray转换成List<Person>
*/
Type listType= new TypeToken<ArrayList<Person>>(){}.getType();
List<Person> persons = new ArrayList<>();
persons = gson.fromJson(personJsonArray,listType);
for (Person p : persons){
Log.e("TAG", p.getName() + " " + p.getAge());// Andy_0 0 Andy_1 1 Andy_2 2
}
相关文章推荐
- Android二维码扫描开发和二维码的生成
- 控制drawable资源大小
- Android adb命令
- [android] 切换界面的通用处理
- Android “original-package” 机制解析
- Android四大组件之Activity详解
- Android画图paint的使用
- Android ListView、viewPager中ImageView图片错为混乱
- 【读书笔记】Android 应用程序进程的启动过程
- Android编程实现AIDL(跨进程通信)的方法详解
- Android 更改软键盘Enter键为搜索
- Android开发中Parcelable接口用法
- Windows下NDK开发环境的搭建(Cygwin+Android-SDK+NDK)(转)
- Android(六)----页面跳转和数据传递
- Android Studio 环境搭建
- Android Material Design系列之FloatingActionButton和Snackbar
- Android的任务栈简介、AndroidMainifest启动模式、Intent Flag启动模式
- Xamarin中打开别人项目找不到android.jar文件
- Android Studio目录结构
- 手机usb有线上网