GSON解析JSON

package com.json.gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.json.bean.Person;
/*
 * 这里将json的转化和解析都放在一起了,大家可以根据实际需要来转化json字符串和解析json字符串
 */
public class GsonClass {
	public static void main(String[] args) {
		method1();
		method2();
		method3();
		method4();
	}
	
	static void method1(){
		System.out.println("javabean转化示例开始----------");
		Person person = new Person("1","gson",1);
		Gson gson = new Gson();
		//这里将javabean转化成json字符串
		String jsonString = gson.toJson(person);
		System.out.println(jsonString);
		//这里将json字符串转化成javabean对象,
		person = gson.fromJson(jsonString,Person.class);
		System.out.println(person.toString());
		
		System.out.println("javabean转化示例结束----------");
	}
	
	static void method2(){
		System.out.println("List<javabean>转化示例开始----------");
		
		Person person1 = new Person("1","gson1",1);
		Person person2 = new Person("2","gson2",2);
		List<Person> persons = new ArrayList<Person>();
		persons.add(person1);
		persons.add(person2);
		Gson gson = new Gson();
		String jsonString = gson.toJson(persons);
		System.out.println("json字符串:"+jsonString);
		
		//解析json字符串
		List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());
		//输出解析后的person对象,也可以通过调试模式查看persons2的结构
		System.out.println("person1对象:"+persons2.get(0).toString());
		System.out.println("person2对象:"+persons2.get(1).toString());
		
		System.out.println("List<javabean>转化示例结束----------");
	}
	
	static void method3(){
		System.out.println("List<String>转化示例开始----------");
		List<String> list = new ArrayList<String>();
		list.add("gson1");
		list.add("gson2");
		list.add("gson3");
		Gson gson = new Gson();
		String jsonString = gson.toJson(list);
		System.out.println("json字符串:"+jsonString);
		
		//解析json字符串
		List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());
		System.out.println(list2.get(0)+"::"+list2.get(1)+"::"+list2.get(2));
		System.out.println("List<String>转化示例结束----------");

	}
	
	static void method4(){
		System.out.println(" List<Map<String,Object>>转化示例开始----------");
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("key1", "value1");
		map.put("key2", "value2");
		Map<String,Object> map2 = new HashMap<String,Object>();
		map2.put("key1", 1);
		map2.put("key2", 2);
		List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
		list.add(map);
		list.add(map2);
		Gson gson =  new Gson();
		String jsonString = gson.toJson(list);
		System.out.println("json字符串:"+jsonString);
		//解析json字符串
		List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());
		
		System.out.println("map的key1值"+list2.get(0).get("key1"));
		System.out.println("map的key2值"+list2.get(0).get("key2"));
		System.out.println("ma2p的key1值"+list2.get(1).get("key1"));
		System.out.println("map2的key2值"+list2.get(1).get("key2"));
		
		System.out.println(" List<Map<String,Object>>转化示例结束----------");

	}
	
}



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象

类型一:JavaBean

类型二:List<JavaBean>

类型三:List<String>

类型四:List<Map<String,Object>>

将上面的四种数据对象转换成json字符串的方法都是一样的

   Gson gson = new Gson();

   String jsonString = gson.toJson(obj);


  • gson.jar下载地址 code.google.com/p/google-gson/downloads/list

  • 网盘地址 :pan.baidu.com/s/1dDxe6uX


  1. 将json字符串转化成JavaBean对象

    Person person = new Person("1","gson",1);

    Gson gson = new Gson();

    //这里将javabean转化成json字符串

    String jsonString = gson.toJson(person);

    System.out.println(jsonString);

    //这里将json字符串转化成javabean对象,

    person = gson.fromJson(jsonString,Person.class);

  2. 将json字符串转化成List<JavaBean>对象

    Person person1 = new Person("1","gson1",1);

    Person person2 = new Person("2","gson2",2);

    List<Person> persons = new ArrayList<Person>();

    persons.add(person1);

    persons.add(person2);

    Gson gson = new Gson();

    //这里将lsit<javabean>转化成json字符串

    String jsonString = gson.toJson(persons);

    //解析json字符串

    List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());

  3. 将json字符串转化成List<String>对象

    List<String> list = new ArrayList<String>();

    list.add("gson1");

    list.add("gson2");

    list.add("gson3");

    Gson gson = new Gson();

    String jsonString = gson.toJson(list);

    System.out.println("json字符串:"+jsonString);

    //解析json字符串

    List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());

  4. 将json字符串转化成List<Map<String,Object>>对象

    Map<String,Object> map = new HashMap<String,Object>();

    map.put("key1", "value1");

    map.put("key2", "value2");

    Map<String,Object> map2 = new HashMap<String,Object>();

    map2.put("key1", 1);

    map2.put("key2", 2);

    List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

    list.add(map);

    list.add(map2);

    Gson gson =  new Gson();

    String jsonString = gson.toJson(list);

    System.out.println("json字符串:"+jsonString);

    //解析json字符串

    List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());




转载:http://jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值