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. vmware12用 unlocker206能不能解锁 OS X系统

    先下载UnLocker2061.zip 2. 选择虚拟机右键--> 属性 3.将下载的unlocker2061解压后文件放入VMware安装目录下  选择win-install.cmd文件  右 ...

  2. [翻译]Understanding Weak References(理解弱引用)

    原文 Understanding Weak References Posted by enicholas on May 4, 2006 at 5:06 PM PDT 译文 我面试的这几个人怎么这么渣啊 ...

  3. 通俗理解隐马尔科夫模型HMM(转载)

    作者:Yang Eninala 链接:https://www.zhihu.com/question/20962240/answer/33438846 来源:知乎 著作权归作者所有,转载请联系作者获得授 ...

  4. 关于debug时的一些操作

    当进入一个for循环时,想要看i==49或者其它的行,可以进行如下操作: 在for循环中打断点,点击鼠标右键,选择如下: 在弹出的页面中选择Breakpoint Properties,输入i==49, ...

  5. yii使用MongoDB作为数据库服务软件[win7环境下](2)

    11.测试php连接并对mongodb进行简单的操作,下载RockMongo对应的数据库管理软件放到webserver软件相关的目录下,例如: 12.打开对应的url[你还可以接着对数据库进行相应的操 ...

  6. ODOO从哪里开始??OpenERP的第一根线头儿

    Windows下ODOO源码启动: python odoo-bin -w odoo -r odoo --addons-path=addons,../mymodules --db-filter=mydb ...

  7. 论文笔记之:Deep Recurrent Q-Learning for Partially Observable MDPs

    Deep Recurrent Q-Learning for Partially Observable MDPs  摘要:DQN 的两个缺陷,分别是:limited memory 和 rely on b ...

  8. Nginx日志导入到Hive0.13.1,同步Hbase0.96.2,设置RowKey为autoincrement(ID自增长)

    ---------------------------------------- 博文作者:迦壹 博客地址:Nginx日志导入到Hive,同步Hbase,设置RowKey为autoincrement( ...

  9. linux IO调度

    I/O 调度算法再各个进程竞争磁盘I/O的时候担当了裁判的角色.他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能.在linux下面列出4种调度算法CFQ (Completely ...

  10. SUSE Linux 13服务器版

    SUSE Linux 下面打开图形界面下的终端 桌面右键,选择运行 konsole命令打一桌面终端插件 配置静态ip /etc/sysconfig/network/ 虚拟机下面的网卡 vi /etc/ ...