Android JSON(Fastjson,Gson)
2015-09-09 18:53
495 查看
学习的时候用了Android自带JSON格式,使用一个简单的封装就要很多代码,就学习了一下第三方提供的jar,使用很简单。
Fastjson:fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发,官方称是目前最好的json库,速度最快,主要使用toJSONString,parseObject等进行转换。Gson:Gson 是谷歌推出的对JSON数据操作的一个jar文件,Gson的应用主要为toJson与fromJson两个转换函数。
不多说了,直接上代码。
首先是阿里的:
/** * fastjson * Created by Administrator on 2015/8/18. * * 阿里出的 fastjson */ public class FastjsonTest { public static void main(String[] args) { //method1(); //method2(); //method3(); method4(); }/** * JSON.toJSONString()转换换成字符串 * JSON.parseObject(String,class)解析 */private static void method1(){ Person person = new Person("1","小赖",19); //这里将javabean转换成json字符串 String jsonString = JSON.toJSONString(person); System.out.println(jsonString ); //这里将json字符串转换成javabean对象 Person person1 = JSON.parseObject(jsonString,Person.class); System.out.println(person1.getName().toString());} /** * JSON.toJSONString()转换成字符串 * JSON.parseArray(String,class)解析 将JSON格式的字符串转换为List<T>类型的对象 */private static void method2(){ Person person1 = new Person("1","小赖",19); Person person2 = new Person("2","战神",20); List<Person> list = new ArrayList<Person>(); list.add(person1); list.add(person2); String jsonString = JSON.toJSONString(list); System.out.println(jsonString); List<Person> list1 = JSON.parseArray(jsonString, Person.class); for(Person p:list1){ System.out.println(p.getId() + " " + p.getName()); }} /** * JSON.toJSONString()转换成json字符串 * JSON.parseObject(String,type);解析,将JSON格式的字符串转换成任意Java类型的对象 * type new TypeReference<List<String>>(){} --这种的 */private static void method3(){ List<String> list = new ArrayList<String>(); list.add("love"); list.add("xiao"); list.add("lai"); String jsonString = JSON.toJSONString(list); System.out.print(jsonString); List<String> list1 = JSON.parseObject(jsonString, new TypeReference<List<String>>() { }); for(String p:list1){ System.out.println(p); }} /** * JSON.toJSONString()转换成json字符串 * JSON.parseObject(String,type);解析,将JSON格式的字符串转换成任意Java类型的对象 */private static void method4(){ Map<String,Object> map = new HashMap<String,Object>(); map.put("key1","小"); map.put("key2", "赖"); Map<String,Object> map1 = new HashMap<String,Object>(); map1.put("key1", 1); map1.put("key2", 2); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); list.add(map); list.add(map1); String jsonString = JSON.toJSONString(list); System.out.println(jsonString); List<Map<String,Object>> list1 = JSON.parseObject(jsonString,new TypeReference<List<Map<String, Object>>>(){}); for(Map<String,Object> m:list1){ System.out.println(m.get("key1")+" "+m.get("key2")); }}}
谷歌的:
/**
* Created by Administrator on 2015/8/18.
* Gson 是谷歌推出的对JSON数据操作的一个jar文件
* Gson的应用主要为toJson与fromJson两个转换函数,
* 而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象。
* 即先创建好对应的javabean,javabean中的字段与要转换的json之间要一一对应
*/
public class GsonTest { private static Gson gson = new Gson(); public static void main(String[] args) { //gsoncs1(); //gsoncs2(); gsoncs3(); }/** * gson.toJson()转换成json字符串 * gson.fromJson(String,class)解析 */private static void gsoncs1(){ Person2 person = new Person2("1","小赖",19); //将对象转换成json格式的字符串 String jsonString = gson.toJson(person); System.out.println(jsonString); //将json字符串转换成指定的类型对象 Person2 person2 = gson.fromJson(jsonString,Person2.class); System.out.println(person2.getName());} /** * gson.toJson()转换成json字符串 * gson.fromJson(String,new TypeToken<List<Person>>(){}.getType())解析 */ private static void gsoncs2(){ Person person1 = new Person("1","小赖",19); Person person2 = new Person("2","战神",20); List<Person> list = new ArrayList<Person>(); list.add(person1); list.add(person2); String jsonString = gson.toJson(list); System.out.println(jsonString); List<Person> list2 = gson.fromJson(jsonString,new TypeToken<List<Person>>(){}.getType()); for(Person p:list2){ System.out.println(p.getId() + " " + p.getName()); }} private static void gsoncs3(){ Map<String,Object> map = new HashMap<String,Object>(); map.put("key1", "小"); map.put("key2", "赖"); Map<String,Object> map1 = new HashMap<String,Object>(); map1.put("key1", 1); map1.put("key2", 2); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); list.add(map); list.add(map1); String jsonString = gson.toJson(list); System.out.println(jsonString); List<Map<String,Object>> list1 = gson.fromJson(jsonString,new TypeToken<List<Map<String,Object>>>(){}.getType()); for(Map<String,Object> m:list1){ System.out.println(m.get("key1").toString()+" "+m.get("key2").toString()); } }} Person类 public class Person { private String id ; private String name; private int age ; public Person(){}; public Person(String id,String name,int age){ this.id = id; this.name = name; this.age = age; }; public String getId() { return id; } public void setId(String id) { this.id = id; } 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; } }
总结:不管是那种方式,都是挺方便的,别人的东西,肯定比自己现在写的好,学会用也是一门技术,得努力啊!
例子源码:点击下载源码
fastjson包:fastjson包
Gson包:Gson包
相关文章推荐
- 15_09_18 Android 程序结构图
- Android中自定义组合控件
- Android进程间通信之使用Messenger
- Android客户端支付宝支付
- Android入门之网络图片查看器
- Android广播传值
- Android 读取工程中的txt文件
- android中MVP模式
- DrawerLayout 抽屉效果
- web页面在android上显示bug处理
- android 地图开发之聚合,定位
- 细数Android开源项目中那些频繁使用的并发库中的类
- android 中 LocalSocket的基本使用方法
- 【Android】状态栏通知Notification、NotificationManager详解
- android listview添加footview,有的手机可以正常显示,有的则不显示
- ViewPager 详解
- Android屏幕密度
- 在 Android Studio 中使用OpenCV所遇到问题
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager和Fragment实现顶部导航界面滑动效果