学习的时候用了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包