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 ...
随机推荐
- .Net MVC框架 + WCF 搭建 集群开发
http://www.cnblogs.com/zhijianliutang/archive/2012/01/28/2258844.html
- Sublime Text 3安装与使用
本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔 ...
- POJ 1637 Sightseeing tour (混合图欧拉路判定)
Sightseeing tour Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6986 Accepted: 2901 ...
- CCSprite setTextureRect 的坐标的坑
setTextureRect显示区域所使用的坐标系是跟cocos2d-x的系统坐标系是有区别的,这个坐标系使用的一般屏幕坐标系,也就是以左上角为原点(0,0). Sprite的AnchorPoint对 ...
- hdu2874 LCA
题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通. 一开始有最短路的想法,但是由于询问有 1e6 组,做 ...
- java 生成8位数字作为UID
java 生成8位数字作为UUID: /*** * 生成uid 8位数字 */public static String generateUID(){ Random random = new Rando ...
- 论文笔记之:Generative Adversarial Text to Image Synthesis
Generative Adversarial Text to Image Synthesis ICML 2016 摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的 ...
- java Map迭代
//先入先出 public class Test { public static void main(String[] args) { LinkedHashMap<String,Object&g ...
- ASP.NET应用程序与页面生命周期
http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html
- C++模板类的使用
1.定义模板类 通过类似于下面的语法可以定义一个模板类: template<typename T> class Job : public virtual RefBase { public: ...