import java.time.LocalDateTime;
import java.util.Optional;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.reflect.TypeToken;
/**
* .
*
* @author Andypan
* @filename GsonUtil.java
* @date 2017年6月16日 下午4:42:43
*/
public class GsonUtil {
private static final Gson gson = new Gson();
private static final Gson prettyFormatGson = new Gson();
private static final Gson dateFormatGson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss.SSS").create();
private static final JsonParser jsonParser = new JsonParser();
/**
*
* @param obj
* @return
*/
public static String toJson(Object obj) {
return gson.toJson(obj);
}
/**
* @param json
* @param clazz
* @return
*/
public static <T> T jsonToSampleBean(String json, Class<T> clazz) {
T t = gson.fromJson(json, clazz);
return t;
}
/**
*
* @param json
* @param clazz
* @return
*/
public static <T> T jsonToComplexdBean(String json, Class<T> clazz) {
T t = gson.fromJson(json, new TypeToken<T>() {
}.getType());
return t;
}
/**
*
* @param json
* @return
*/
public static String formatPrettyJson(String json) {
JsonElement je = jsonParser.parse(json);
json = prettyFormatGson.toJson(je);
return json;
}
/**
* check json is valid
*
* @param json
* @return true or false
*/
public static boolean isJsonValid(String json) {
boolean jsonFlag = false;
try {
jsonParser.parse(json).getAsJsonObject();
jsonFlag = true;
} catch (Exception e) {
jsonFlag = false;
}
return jsonFlag;
}
public static JsonElement get(JsonObject jsonObj, String key) {
JsonElement value = null;
if (isKeyExist(jsonObj, key)) {
value = jsonObj.get(key);
}
return value;
}
/**
*
* @param jsonObj
* @param key
* @return
*/
public static String getAsString(JsonObject jsonObj, String key) {
if (null != jsonObj && !Strings.isNullOrEmpty(key)) {
JsonElement je = jsonObj.get(key);
if (!je.isJsonNull()) {
return je.getAsString();
}
}
return null;
}
public static Optional<String> getAsStringWithOpton(JsonObject jsonObj, String key) {
if (null != jsonObj && !Strings.isNullOrEmpty(key)) {
JsonElement je = jsonObj.get(key);
if (!je.isJsonNull()) {
return Optional.of(je.getAsString());
}
}
return Optional.empty();
}
public static JsonObject removeKey(JsonObject jsonObj, String key) {
jsonObj.remove(key);
return jsonObj;
}
public static JsonObject set(JsonObject jsonObj, String key, String value) {
if (isKeyExist(jsonObj, key)) {
jsonObj.remove(key);
}
jsonObj.addProperty(key, value);
return jsonObj;
}
/**
*
* @param json
* @param key
* @return
*/
public static boolean isKeyExist(JsonObject jsonObj, String key) {
boolean exist = false;
exist = jsonObj.has(key);
return exist;
}
/**
*
* @param timeFormatter
* @param dateTime
* @return
*/
public static String parseDate(String timeFormatter, LocalDateTime dateTime) {
Gson gson = new GsonBuilder().setDateFormat(timeFormatter).create();
return gson.toJson(dateTime);
}
/**
*
* @param timeFormatter
* @param dateTime
* @return
*/
public static String parseDate(LocalDateTime dateTime) {
return dateFormatGson.toJson(dateTime);
}
/**
*
* @return get one Gosn that does not escape html
*/
public static Gson getDisHtmlEscape() {
return new GsonBuilder().disableHtmlEscaping().create();
}
public static LocalDateTime dateTimeFromJson(String dataTime) {
LocalDateTime localDateTime = dateFormatGson.fromJson(dataTime, new TypeToken<LocalDateTime>() {
}.getType());
return localDateTime;
}
public static void main(String[] args) {
// String datestr =
// "{\"date\":{\"year\":2017,\"month\":6,\"day\":16},\"time\":{\"hour\":17,\"minute\":22,\"second\":16,\"nano\":588000000}}";
// LocalDateTime dateTime = GsonUtil.dateTimeFromJson(datestr);
// System.out.println(dateTime);
JsonObject j = new JsonObject();
j.add("a", new JsonPrimitive("aa"));
j.add("b", new JsonPrimitive("23"));
System.out.println(j.toString());
JsonObject j2 = GsonUtil.jsonToSampleBean(j.toString(), JsonObject.class);
System.out.println(j2.get("a").getAsString());
}
}
import java.util.Optional;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.reflect.TypeToken;
/**
* .
*
* @author Andypan
* @filename GsonUtil.java
* @date 2017年6月16日 下午4:42:43
*/
public class GsonUtil {
private static final Gson gson = new Gson();
private static final Gson prettyFormatGson = new Gson();
private static final Gson dateFormatGson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss.SSS").create();
private static final JsonParser jsonParser = new JsonParser();
/**
*
* @param obj
* @return
*/
public static String toJson(Object obj) {
return gson.toJson(obj);
}
/**
* @param json
* @param clazz
* @return
*/
public static <T> T jsonToSampleBean(String json, Class<T> clazz) {
T t = gson.fromJson(json, clazz);
return t;
}
/**
*
* @param json
* @param clazz
* @return
*/
public static <T> T jsonToComplexdBean(String json, Class<T> clazz) {
T t = gson.fromJson(json, new TypeToken<T>() {
}.getType());
return t;
}
/**
*
* @param json
* @return
*/
public static String formatPrettyJson(String json) {
JsonElement je = jsonParser.parse(json);
json = prettyFormatGson.toJson(je);
return json;
}
/**
* check json is valid
*
* @param json
* @return true or false
*/
public static boolean isJsonValid(String json) {
boolean jsonFlag = false;
try {
jsonParser.parse(json).getAsJsonObject();
jsonFlag = true;
} catch (Exception e) {
jsonFlag = false;
}
return jsonFlag;
}
public static JsonElement get(JsonObject jsonObj, String key) {
JsonElement value = null;
if (isKeyExist(jsonObj, key)) {
value = jsonObj.get(key);
}
return value;
}
/**
*
* @param jsonObj
* @param key
* @return
*/
public static String getAsString(JsonObject jsonObj, String key) {
if (null != jsonObj && !Strings.isNullOrEmpty(key)) {
JsonElement je = jsonObj.get(key);
if (!je.isJsonNull()) {
return je.getAsString();
}
}
return null;
}
public static Optional<String> getAsStringWithOpton(JsonObject jsonObj, String key) {
if (null != jsonObj && !Strings.isNullOrEmpty(key)) {
JsonElement je = jsonObj.get(key);
if (!je.isJsonNull()) {
return Optional.of(je.getAsString());
}
}
return Optional.empty();
}
public static JsonObject removeKey(JsonObject jsonObj, String key) {
jsonObj.remove(key);
return jsonObj;
}
public static JsonObject set(JsonObject jsonObj, String key, String value) {
if (isKeyExist(jsonObj, key)) {
jsonObj.remove(key);
}
jsonObj.addProperty(key, value);
return jsonObj;
}
/**
*
* @param json
* @param key
* @return
*/
public static boolean isKeyExist(JsonObject jsonObj, String key) {
boolean exist = false;
exist = jsonObj.has(key);
return exist;
}
/**
*
* @param timeFormatter
* @param dateTime
* @return
*/
public static String parseDate(String timeFormatter, LocalDateTime dateTime) {
Gson gson = new GsonBuilder().setDateFormat(timeFormatter).create();
return gson.toJson(dateTime);
}
/**
*
* @param timeFormatter
* @param dateTime
* @return
*/
public static String parseDate(LocalDateTime dateTime) {
return dateFormatGson.toJson(dateTime);
}
/**
*
* @return get one Gosn that does not escape html
*/
public static Gson getDisHtmlEscape() {
return new GsonBuilder().disableHtmlEscaping().create();
}
public static LocalDateTime dateTimeFromJson(String dataTime) {
LocalDateTime localDateTime = dateFormatGson.fromJson(dataTime, new TypeToken<LocalDateTime>() {
}.getType());
return localDateTime;
}
public static void main(String[] args) {
// String datestr =
// "{\"date\":{\"year\":2017,\"month\":6,\"day\":16},\"time\":{\"hour\":17,\"minute\":22,\"second\":16,\"nano\":588000000}}";
// LocalDateTime dateTime = GsonUtil.dateTimeFromJson(datestr);
// System.out.println(dateTime);
JsonObject j = new JsonObject();
j.add("a", new JsonPrimitive("aa"));
j.add("b", new JsonPrimitive("23"));
System.out.println(j.toString());
JsonObject j2 = GsonUtil.jsonToSampleBean(j.toString(), JsonObject.class);
System.out.println(j2.get("a").getAsString());
}
}