X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Futils%2FGsonUtil.java;h=e43a68e953a958e44936753863fd1b2c8b30607b;hb=f00f74740e42d08cc6823d094b78aedf87e4cff8;hp=452aaf8e29f15d682042c966d0d172f4f6e35107;hpb=37630177bc70661ce86cb12e9af34e8c09893f4d;p=holmes%2Fcommon.git
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java b/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java
index 452aaf8..e43a68e 100644
--- a/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java
@@ -1,12 +1,12 @@
/**
- * Copyright 2018 ZTE Corporation.
- *
+ * Copyright 2018-2022 ZTE Corporation.
+ *
* 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
- *
+ *
+ * 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.
@@ -15,32 +15,36 @@
*/
package org.onap.holmes.common.utils;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParseException;
+import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
-import java.lang.reflect.Type;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Date;
import java.util.List;
import java.util.Map;
public class GsonUtil {
private static Gson gson = null;
+
static {
if (gson == null) {
gson = new GsonBuilder()
- .registerTypeAdapter(Integer.class, new JsonDeserializer() {
- @Override
- public Integer deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
- try {
- return json.getAsInt();
- } catch (NumberFormatException e) {
- return 0;
- }
+ .registerTypeAdapter(Integer.class, (JsonDeserializer) (json, typeOfT, context) -> {
+ try {
+ return json.getAsInt();
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ })
+ .registerTypeAdapter(Date.class, (JsonDeserializer) (jsonElement, type, jsonDeserializationContext) -> {
+ try {
+ return jsonElement == null ? null : new Date(jsonElement.getAsLong());
+ } catch (NumberFormatException e) {
+ return null;
}
})
+ .registerTypeAdapter(Date.class, (JsonSerializer) (date, type, jsonSerializationContext)
+ -> date == null ? null : new JsonPrimitive(date.getTime()))
.create();
}
}
@@ -65,31 +69,70 @@ public class GsonUtil {
return t;
}
- public static List GsonToList(String gsonString, Class cls) {
+ public static List jsonToList(String gsonString, Class cls) {
List list = null;
if (gson != null) {
- list = gson.fromJson(gsonString, new TypeToken>() {
- }.getType());
+ list = gson.fromJson(gsonString, TypeToken.getParameterized(List.class, cls).getType());
}
return list;
}
- public static List