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的更多相关文章

  1. android -volley-请求数据

    private List<gson.DataBean>arrGson;//请求的数据 //请求数据的方法 public void initData() { RequestQueue mQu ...

随机推荐

  1. .Net MVC框架 + WCF 搭建 集群开发

    http://www.cnblogs.com/zhijianliutang/archive/2012/01/28/2258844.html

  2. Sublime Text 3安装与使用

    本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔 ...

  3. POJ 1637 Sightseeing tour (混合图欧拉路判定)

    Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6986   Accepted: 2901 ...

  4. CCSprite setTextureRect 的坐标的坑

    setTextureRect显示区域所使用的坐标系是跟cocos2d-x的系统坐标系是有区别的,这个坐标系使用的一般屏幕坐标系,也就是以左上角为原点(0,0). Sprite的AnchorPoint对 ...

  5. hdu2874 LCA

    题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通. 一开始有最短路的想法,但是由于询问有 1e6 组,做 ...

  6. java 生成8位数字作为UID

    java 生成8位数字作为UUID: /*** * 生成uid 8位数字 */public static String generateUID(){ Random random = new Rando ...

  7. 论文笔记之:Generative Adversarial Text to Image Synthesis

    Generative Adversarial Text to Image Synthesis ICML 2016  摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的 ...

  8. java Map迭代

    //先入先出 public class Test { public static void main(String[] args) { LinkedHashMap<String,Object&g ...

  9. ASP.NET应用程序与页面生命周期

    http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html

  10. C++模板类的使用

    1.定义模板类 通过类似于下面的语法可以定义一个模板类: template<typename T> class Job : public virtual RefBase { public: ...