Java tutorial
/* * Copyright 2016 jeasonlzy(?) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.caihan.scframe.utils.json.gson; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonIOException; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; import com.google.gson.internal.bind.DateTypeAdapter; import com.google.gson.stream.JsonReader; import java.io.Reader; import java.lang.reflect.Type; import java.util.Date; /** * OkGo?Json? * * @author caihan * @date 2018/1/18 * @e-mail 93234929@qq.com * */ public class GsonConvertUtils { private static Gson create() { return GsonConvertUtils.GsonHolder.gson; } private static class GsonHolder { private static Gson gson = new Gson(); } public static <T> T fromJson(String json, Class<T> type) throws JsonIOException, JsonSyntaxException { return create().fromJson(json, type); } public static <T> T fromJson(String json, Type type) { return create().fromJson(json, type); } public static <T> T fromJson(JsonReader reader, Type typeOfT) throws JsonIOException, JsonSyntaxException { return create().fromJson(reader, typeOfT); } public static <T> T fromJson(Reader json, Class<T> classOfT) throws JsonSyntaxException, JsonIOException { return create().fromJson(json, classOfT); } public static <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException { return create().fromJson(json, typeOfT); } public static String toJson(Object src) { return create().toJson(src); } public static String toJson(Object src, Type typeOfSrc) { return create().toJson(src, typeOfSrc); } public static String formatJson(String json) { try { JsonParser jp = new JsonParser(); JsonElement je = jp.parse(json); return new GsonBuilder().setPrettyPrinting() .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .registerTypeAdapter(Date.class, new DateTypeAdapter()).create().toJson(je); } catch (Exception e) { return json; } } public static String formatJson(Object src) { try { JsonParser jp = new JsonParser(); JsonElement je = jp.parse(toJson(src)); return new GsonBuilder().setPrettyPrinting() .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .registerTypeAdapter(Date.class, new DateTypeAdapter()).create().toJson(je); } catch (Exception e) { return e.getMessage(); } } }