`
阿杜杜不是阿木木
  • 浏览: 20298 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Google的Gson处理工具类

 
阅读更多

更新日期:20150902

package com.fdmis.util;
import java.io.StringReader;
import java.lang.reflect.Type;
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.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.google.gson.stream.JsonReader;
public class JsonUtil {
	/**
	 * 将JavaBean转化为jsonStr
	 * @param obj
	 * @return
	 */
	public String toStrings(Object obj) {
		Gson gson = new GsonBuilder()
				.disableHtmlEscaping()
				.registerTypeAdapter(java.util.Date.class,new UtilDateSerializer())
				.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
		return gson.toJson(obj);
	}

	/**
	 * 将jsonStr转化为JavaBean
	 * @param <T>
	 * @param json
	 * @param type
	 * @return
	 */
	public <T> T toObj(String json, Type type) {
		//T t = new com.google.gson.reflect.TypeToken<T>() {}.getType();
		Gson gson = new GsonBuilder()
				.disableHtmlEscaping()
				.registerTypeAdapter(java.util.Date.class,new UtilDateDeserializer())
				.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
		return gson.fromJson(json, type);
	}

	/**
	 * 将jsonStr转化成Map<String, String>
	 * @param json
	 * @return
	 */
	public Map<String, String> toMap(String json) {
		JsonReader reader = new JsonReader(new StringReader(json));
		Map<String, String> map = new HashMap<String, String>();
		try {
			reader.beginObject();
			while (reader.hasNext()) {
				map.put(reader.nextName(), reader.nextString());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

	/**
	 * 将jsonStr转化成Map<String, String>
	 * @param result
	 * @return
	 */
	public Map<String, String> getMapData(String result) {

		Map<String, String> map = new HashMap<String, String>();
		Type type = new com.google.gson.reflect.TypeToken<Map<String, String>>() {}.getType();
		map = toObj(result, type);
		return map;
	}

	/**
	 * 将jsonStr转化成List<Map<String, String>>
	 * @param result
	 * @return
	 */
	public List<Map<String, String>> getMapListData(String result) {
		List<Map<String, String>> ml = new ArrayList<Map<String, String>>();
		Type type = new com.google.gson.reflect.TypeToken<List<Map<String, String>>>() {}.getType();
		ml = toObj(result, type);
		return ml;
	}
	
	/**
	 * 序列化日期类型的实现类
	 * @author Administrator
	 *
	 */
	class UtilDateSerializer implements JsonSerializer<java.util.Date> {

		public JsonElement serialize(java.util.Date src, Type typeOfSrc,
				JsonSerializationContext context) {
			return new JsonPrimitive(src.getTime());
		}

	}
	
	/**
	 * 反序列化日期类型的实现类
	 * @author Administrator
	 */
	class UtilDateDeserializer implements JsonDeserializer<java.util.Date> {
		public java.util.Date deserialize(JsonElement json, Type typeOfT,
				JsonDeserializationContext context) throws JsonParseException {
			return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Gson工具类 JsonUtil

    Google json工具类,将java对象装换为json,支持泛型和任意类型

    基于googleGson的Json工具类

    基于googleGson的Json工具类,支持List,Object与Json互转,简单易用,Java与Android通用

    GsonTools Gson工具类java

    GsonTools Gson工具类java Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

    android_Gson

    Google gson 解析工具类封装

    googlegson

    用于解析json字符串的gson工具类,用于解析json字符串的gson工具类免费下载了,非常的好用

    Google-gson-2.1

    解析gson,用gson开发的必备工具,欢迎下载

    gson-2.8.0

    用于转换Java对象为 Json 字符串和把 Json 字符串转换为对象的工具, 它是 Google 开发的,性能比较强大。

    Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    主要介绍了Java实现操作JSON的便捷工具类,基于重写Google的Gson实现,涉及java针对json数据的各种常见转换操作实现技巧,需要的朋友可以参考下

    gson 源代码Jar、工程Jar、API Jar

    最新GSON源文件、API文档和项目用Jar文件。...一个Jar包也要5积分,有一个建议,寻找工具类代码时加上一个github要好很多,不但免费还最新。如问度娘: gson github要好于gson 下载~csdn 没有0积分的了,只好选1了。

    springboot整合Jackson实例项目-附工具类

    说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司中必用的组件之一,常用的还用阿里的Fastjson,但是由于一些原因bug与漏洞是在是太多,在注重安全的公司直接被...

    数据库增删改查工具类

    支持字符串模糊查询,同时提供了JSON和Object对象之前相互转化的工具类,目前不支持集合类型转换,可以支持简单基本类型,Date类型。必须要求数据库和类的属性严格对应一致。当然你也可以采用google提供的GSon框架,...

    gson-utilities:gson实用程序的集合

    与Google gson一起使用的实用程序类的集合。 这些实用程序是根据MIT许可获得许可的。 使用gson-utilities 要使用此库,只需将其添加到您的Maven依赖项中: &lt; groupId&gt;com.github.enerccio&lt;/ groupId&gt; ...

    jsonTOjavabean.zip

    对于JSON数据格式的处理,自开发Java以来,已用过多种JSON的开源工具,用得最好,也用得最High的恐怕要属Google的Gson了。 特别为它写了一个工具类,放入常备工具中,方便使用。下面是为GSON 1.5版本重写的工具类。...

    JsonUtil工具累

    json工具类,基于com.google.code.gson封装的json转换工具类

    免费云存储工具类——七牛云(更改配置信息,直接使用)

    云存储工具类——七牛云 第一步 导入相关依赖: com.qiniu qiniu-java-sdk [7.2.0, 7.2.99] com.google.code.gson gson 2.8.2 第二步 写入需要的配置信息: dns:你的云存储空间域名(生成之后会有一个临时...

    办公自动化系统的设计与实现.doc

    使用MyEclipse集成环境作为系统开发工具,后台使用SpringMVC框架实现前台的请求处理,使用Hibernate连接数据库进行数据操作,服务器返回的数据通过Google的Gson工具类转换为JSON格式再响应回浏览器方便前台做处理与...

    Ok-Volley:Square 的 OkHttp 客户端和适用于 Android 的 Volley Networking 工具包的组合。 它还集成了 Gson 和其他小功能,比如持久化 cookie 存储

    它已经实现了常见的 Volley 类: VolleyManager :封装 RequestQueue 和其他排球功能的单例类GsonRequest :用于 json 请求的 Volley 适配器,将由 Gson 解析为 Java 对象。 LruBitmapCache :内存中 lru 缓存的...

    ViacomPT:维亚康姆原型机

    定义的应用程序包添加了 Java 类来处理来自 API 的数据应用程序界面设计将 UI 附加到他们的控制器添加了不同的工具类,例如 NetworkUtils、LogUtils、ParseUtils NetworkUtils 可以进一步优化以处理其他请求解析...

    java使用企业微信给员工发消息 WeChatMsgSendUtils.java

    java办公系统连接企业微信中的自建应用接口,实现自动给员工发送消息(适用于文本类型),可以用于发送任务通知。... &lt;groupId&gt;com.google.code.gson&lt;/groupId&gt; &lt;artifactId&gt;gson &lt;version&gt;2.8.6 &lt;/dependency&gt;

    JavatarDoclet:用于 Javatar 包生成的 Java doclet

    JavatarDoclet 用于 Javatar 包生成的 Java doclet依赖关系JDK(工具.jar) 谷歌gson

Global site tag (gtag.js) - Google Analytics