Gson 解析工具封装

public class JSONUtils {
    public static String parser2json(Object obj) {
        Gson gson = new Gson();
        return gson.toJson(obj);
    }

    public static String parserDateBean2json(Object obj) {
        GsonBuilder gsonBuilder = new GsonBuilder();
        Gson gson = gsonBuilder
                .registerTypeAdapter(java.util.Date.class,
                        new DateSerializerUtils())
                .setDateFormat(DateFormat.LONG).create();
        return gson.toJson(obj);
    }

    public static <T> List<T> fromJson(String strjson) {
        try {
            Gson gs = new Gson();
            Type listType = new TypeToken<List<T>>() {
            }.getType();
            List<T> target2 = gs.fromJson(strjson, listType);
            return target2;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static <T> T fromJson(String strjson, Class<T> cls) {
        try {
            Gson gs = new Gson();
            T target2 = (T) gs.fromJson(strjson, cls);
            return target2;
        } catch (Exception e) {
            return null;
        }
    }

    public static <T> T fromJson2DateBean(String json, Class<T> cls) {
        GsonBuilder gsonBuilder = new GsonBuilder();
        Gson gson = gsonBuilder
                .registerTypeAdapter(java.util.Date.class,
                        new DateDeserializerUtils())
                .setDateFormat(DateFormat.LONG).create();
        return gson.fromJson(json, cls);
    }

    private static class DateDeserializerUtils implements
            JsonDeserializer<java.util.Date> {
        @Override
        public java.util.Date deserialize(JsonElement json, Type type,
                JsonDeserializationContext context) throws JsonParseException {
            return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
        }

    }

    private static class DateSerializerUtils implements
            JsonSerializer<java.util.Date> {
        @Override
        public JsonElement serialize(Date date, Type type,
                JsonSerializationContext content) {
            return new JsonPrimitive(date.getTime());
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值