gsons
java 处理 json格式字符串,目前只使用过Google的Gson库。
pom:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.1</version> </dependency>
简单包装一下:
import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; public class Gsons { public static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); public static Gson gsonPretty = new GsonBuilder().setPrettyPrinting().create(); static Gson gsonDate = new GsonBuilder().setDateFormat("yyyy-MM-dd") .create(); static Gson gsonPrettyDate = new GsonBuilder().setDateFormat("yyyy-MM-dd") .setPrettyPrinting().create(); static JsonParser parser = new JsonParser(); public static String toJson(Object obj, boolean pretty) { return pretty ? gsonPretty.toJson(obj) : gson.toJson(obj); } public static String toJson_OnlyDate(Object obj, boolean pretty) { return pretty ? gsonPrettyDate.toJson(obj) : gsonDate.toJson(obj); } public static Gson getGson() { return gson; } public static JsonParser getParser() { return parser; } /** * TypeToken<List<Foo>> list = new TypeToken<List<Foo>>() { }; * * @param json * @param typeToken * @return */ public static <T> List<T> fromJson(String json, TypeToken<List<T>> typeToken) { Type type = typeToken.getType(); List<T> ret = gson.fromJson(json, type); return ret; } public static <T> T fromJson(String json, Class<T> classOfT) { return gson.fromJson(json, classOfT); } public static String pretty(String json) { if (json == null) return null; JsonElement jsonElement = parser.parse(json); return gsonPretty.toJson(jsonElement); } }
注意一点:
public static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
在处理Date类日期时,最好指定格式,否则容易识别不出来。
当然,也可以不包装,直接使用。具体使用方式,看看源代码。
gsons的更多相关文章
- android -volley-请求数据
private List<gson.DataBean>arrGson;//请求的数据 //请求数据的方法 public void initData() { RequestQueue mQu ...
随机推荐
- linux命令:more
1.命令介绍: more用来逐页输出文件内容,空格键进入到下一页,b键返回到上一页. 2.命令格式: more [选项] 文件 3.命令参数 +n 从笫n行开始显示 -n 定义屏 ...
- 从零开始学习Node.js例子六 EventEmitter发送和接收事件
pulser.js /* EventEmitter发送和接收事件 HTTPServer和HTTPClient类,它们都继承自EventEmitter EventEmitter被定义在Node的事件(e ...
- C#常用操作类库三(XML操作类)
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
- iOS- UITextField限制输入长度
限制输入长度的问题,在这里完美的解决了! //先创建一个textField 和 一个button. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- 关于 edittext 软键盘退出监听解决办法
edittext 有个onCreateInputConnection 的方法,通过它可以自定义一个输入法连接器,那里连接器里面有个方法(finishComposingText)能监听输入完成的动作. ...
- 数据结构C语言实现系列——线性表(线性表链接存储(单链表))
#include <stdio.h>#include <stdlib.h>#define NN 12#define MM 20typedef int elemType ;/** ...
- i++; 与 ++i;的内部区别。
对于一个用前置自加和后置自加的效果相同的地方,我们应该用哪个呢? 例: for(point i = 0; i != N; ?): 上面for语句中的“?”处,你会在那里写i++还是++i呢? 前置++ ...
- 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问
补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...
- 简单的鼠标可拖动div 兼容IE/FF
来源:http://www.cnblogs.com/imwtr/p/4355416.html 作者: 主要思路: 一个div,注册监听onmousedown事件,然后处理获取的对象及其相关值(对象高度 ...
- Python 特殊语法:filter、map、reduce、lambda
Python内置了一些特殊函数,这些函数很具python特性.可以让代码更加简洁. 可以看例子: 1 filter(function, sequence): str = ['a', 'b','c', ...