JSON

json对象解析

字号+ 作者:H5之家 来源:H5之家 2017-08-24 15:05 我要评论( )

json对象解析,1)普通JavaBean类/带日期属性的JavaBean类:JavaBean.java/DateBean.java2)日期序列/反序列工具类:DateSerializerUtils.java、DateDeserializer

正文

1)普通JavaBean类/带日期属性的JavaBean类:JavaBean.java/DateBean.java2)日期序列/反序列工具类:DateSerializerUtils.java、DateDeserializerUtils.java3)测试类GsonTester.java具体代码:1)JavaBean类/DateBean类JavaBean属性:String id、String name、int age、String addr;DateBean属性:String id、String name、int age、java.util.Date date;2)DateSerializerUtils.javapackage com.lupeng.javase.json.util;import java.lang.reflect.Type;import java.util.Date;import com.google.gson.JsonElement;import com.google.gson.JsonPrimitive;import com.google.gson.JsonSerializationContext;import com.google.gson.JsonSerializer;/*** 日期解序列实用工具类* @author Lupeng* @date 2011-08-06*/public class DateSerializerUtils implements JsonSerializer<java.util.Date>{@Overridepublic JsonElement serialize(Date date, Type type,JsonSerializationContext content) {return new JsonPrimitive(date.getTime());}}DateDeserializerUtils.javapackage com.lupeng.javase.json.util;import java.lang.reflect.Type;import com.google.gson.JsonDeserializationContext;import com.google.gson.JsonDeserializer;import com.google.gson.JsonElement;import com.google.gson.JsonParseException;/*** 日期序列化实用工具类* @author Lupeng* @date 2011-08-06*/public class DateDeserializerUtils implements JsonDeserializer<java.util.Date>{@Overridepublic java.util.Date deserialize(JsonElement json, Type type,JsonDeserializationContext context) throws JsonParseException {return new java.util.Date(json.getAsJsonPrimitive().getAsLong());}}3)测试类GsonTester.javapackage com.lupeng.javase.apps.json;import java.text.DateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.lupeng.javase.json.bean.DateBean;import com.lupeng.javase.json.bean.JavaBean;import com.lupeng.javase.json.util.DateDeserializerUtils;import com.lupeng.javase.json.util.DateSerializerUtils;/*** Google Gson解析Json数据实例** 1.Bean、Json转换 testBeanJson()* 2.List -> Json转换 testList2Json()* 3.泛型List、Json相互转换 testGenericList2Json()* 4.Map -> Json转换 testMap2Json()* 5.泛型Map、Json相互转换 testGenericMap2Json()* 6.带日期属性Bean、Json转换 testDateBeanJson()* 7.带日期属性泛型List、Json转换* testDateGenericListJson()** @author Lupeng* @create 2011-08-05* @modify 2011-08-06*/@SuppressWarnings("unchecked")public class GsonTester {private Gson gson = null;private GsonBuilder gsonBuilder = null;@Beforepublic void setUp() {gson = new Gson();gsonBuilder = new GsonBuilder();}/*** JavaBean、Json相互转换*/@Testpublic void testBeanJson() {JavaBean bean = new JavaBean("1001", "scott", 20, "TL");// Bean -> JsonString json = gson.toJson(bean);System.out.println(json);// Json -> Beanbean = gson.fromJson(json, JavaBean.class);System.out.println(bean);}/*** List转换成Json字符串*/@Testpublic void testList2Json() {// ListList list = new ArrayList();for(int i = 0; i < 5; i++) {list.add("element" + i);}System.out.println(list);// List -> JsonString json = gson.toJson(list);System.out.println(json);}/*** 泛型List、Json相互转换*/@Testpublic void testGenericListJson() {// 泛型ListList<JavaBean> list = new ArrayList<JavaBean>();for(int i = 0; i < 3; i++) {JavaBean user = new JavaBean("100" + i, "name" + i, 20 + i, "BJ" + i);list.add(user);}System.out.println(list);// 泛型List -> Jsonjava.lang.reflect.Type type =new com.google.gson.reflect.TypeToken<List<JavaBean>>(){}.getType();String json = gson.toJson(list, type);System.out.println(json); // Json -> 泛型ListList<JavaBean> users = gson.fromJson(json.toString(), type);System.out.println(users);}/*** Map转换成Json字符串*/@Testpublic void testMap2Json() {// Map数据Map map = new HashMap();map.put("id", "1001");map.put("name", "scott");map.put("age", 20);map.put("addr", "BJ");System.out.println(map);// Map -> JsonString json = gson.toJson(map);System.out.println(json);}/*** 泛型Map、Json相互转换*/@Testpublic void testGenericMapJson() {// 泛型Map数据Map<String, JavaBean> map = new HashMap<String, JavaBean>();for(int i = 0; i < 5; i++) {JavaBean user = new JavaBean("100" + i, "name" + i, 20 + i, "LN" + i);map.put("100" + i, user);}System.out.println(map);// 泛型Map -> Jsonjava.lang.reflect.Type type =new com.google.gson.reflect.TypeToken<Map<String, JavaBean>>(){}.getType();String json = gson.toJson(map, type);System.out.println(json); // Json -> MapMap<String, JavaBean> users = gson.fromJson(json.toString(), type);System.out.println(users);}/*** 带日期类型Bean、Json相互转换*/@Testpublic void testDateBeanJson() {// 日期Bean数据DateBean bean = new DateBean("1001", "scott", 20, new Date());// Bean(带日期属性) -> Jsongson = gsonBuilder.registerTypeAdapter(java.util.Date.class,new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();String json = gson.toJson(bean);System.out.println(json);// Json -> Bean(带日期类型属性)gson = gsonBuilder.registerTypeAdapter(java.util.Date.class,new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();java.lang.reflect.Type type =new com.google.gson.reflect.TypeToken<DateBean>(){}.getType();DateBean b = gson.fromJson(json, type);System.out.println(b);}/*** 泛型日期List、Json相互转换*/@Testpublic void testDateGenericListJson() {// 泛型日期ListList<DateBean> list = new ArrayList<DateBean>();for(int i = 0; i < 3; i++) {DateBean user = new DateBean("100" + i, "name" + i, 20 + i, new Date());list.add(user);}System.out.println(list);// 泛型日期List -> Jsongson = gsonBuilder.registerTypeAdapter(java.util.Date.class,new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();java.lang.reflect.Type type =new com.google.gson.reflect.TypeToken<List<DateBean>>(){}.getType();String json = gson.toJson(list, type);System.out.println(json); // Json -> 泛型日期Listgson = gsonBuilder.registerTypeAdapter(java.util.Date.class,new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();List<DateBean> users = gson.fromJson(json.toString(), type);System.out.println(users);}}

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 获取json属性

    获取json属性

    2017-08-24 15:06

  • JSON.stringify()用法介绍

    JSON.stringify()用法介绍

    2017-08-24 12:00

  • 浅谈JSON.parse()和JSON.stringify()

    浅谈JSON.parse()和JSON.stringify()

    2017-08-24 10:00

  • 一些冷门的JS技巧 顶

    一些冷门的JS技巧 顶

    2017-08-23 14:08

网友点评