GsouUtil

0 篇文章 0 订阅
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());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值