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 ...
随机推荐
- PHP正则表达式的快速学习方法
1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...
- 由STL所想到的 C++显示调用析构函数
在STL中的容器中的析构函数中,会经常调用destroy()这个函数 在STL中 destroy()被重载了 这点在这里到不去讨论 这里贴最简单的那个版本 template<class T&g ...
- Android——数据库相关(课堂整理)
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- SQLite语句练习题
1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在 ...
- 億万笑者 - Radwimps
億万笑者 作曲:野田洋次郎 作词:野田洋次郎 明日に希望を持った者だけに 絶望があるんだ何かを信じた者だけに 裏切りはあるんだ勇者だけに与えられた 名誉の負傷とでも言うのかそれにしてはずいぶんと 割に ...
- IIS-反向代理
测试环境:Windows10.IIS/10.0 1.安装ARR.URL Rewrite(URL重写工具2.0) 注意英文和中文环境的对应: Application Request Routing 对应 ...
- java初探/java读取文件
import java.io.*; import java.util.Arrays; public class WriteText { public static void main(String[] ...
- python3_phantomJS_test
phantomJS和selenium差不多,几乎不相上下,使用会麻烦一点,但是比selenium快很多: # !/usr/bin/python3.4 # -*- coding: utf-8 -*- f ...
- [Eclipse] - 集成JBoss7热加载和自动发布
使用Eclipse + JBoss开发时,总是要重启项目或JBoss,烦人.下面方法可以很简单的实现Eclipse + JBoss热加载和自动发布. 我的环境是JBoss 7.1.1 Final 1) ...
- 文件hash数据库
unit YxdDB; interface uses Windows, Classes, SysUtils, SyncObjs; type TYXDDBValue = packed record Si ...