Android JSON(Fastjson,Gson)

本文介绍使用Fastjson和Gson处理JSON数据的方法,包括对象转JSON字符串及解析JSON字符串为对象的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值