diff --git a/OpenIM-SDK/build.gradle b/OpenIM-SDK/build.gradle index 55afaca..36dd17b 100644 --- a/OpenIM-SDK/build.gradle +++ b/OpenIM-SDK/build.gradle @@ -30,10 +30,9 @@ android { dependencies { implementation 'androidx.collection:collection:1.1.0' testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' - implementation 'io.openim:core-sdk:2.0.9.4@aar' - implementation 'com.alibaba:fastjson:1.1.72.android' -// implementation 'com.google.code.gson:gson:2.8.7' + implementation 'io.openim:core-sdk:2.0.9.6@aar' + implementation 'com.google.code.gson:gson:2.9.0' } diff --git a/OpenIM-SDK/src/main/java/io/openim/android/sdk/utils/JsonUtil.java b/OpenIM-SDK/src/main/java/io/openim/android/sdk/utils/JsonUtil.java index 3b9c522..d0324e4 100644 --- a/OpenIM-SDK/src/main/java/io/openim/android/sdk/utils/JsonUtil.java +++ b/OpenIM-SDK/src/main/java/io/openim/android/sdk/utils/JsonUtil.java @@ -1,30 +1,119 @@ package io.openim.android.sdk.utils; -import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public class JsonUtil { - public static String toString(Object o) { - return JSONObject.toJSONString(o); + // public static String toString(Object o) { +// return JSONObject.toJSONString(o); +// } +// +// public static T toObj(String text, Class clazz) { +// try { +// return JSONObject.parseObject(text, clazz); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } +// +// public static List toArray(String text, Class clazz) { +// try { +// return JSONObject.parseArray(text, clazz); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } + private static final Gson gson = new Gson(); + + /** + * 将object对象转成json字符串 + */ + public static String toString(Object object) { + String gsonString = null; + if (null != object) { + gsonString = gson.toJson(object); + } + return gsonString; + } + + + /** + * 将gsonString转成泛型bean + */ + public static T toObj(String gsonString, Class cls) { + T t = null; + if (null != gsonString) { + t = gson.fromJson(gsonString, cls); + } + return t; } - public static T toObj(String text, Class clazz) { - try { - return JSONObject.parseObject(text, clazz); - } catch (Exception e) { - e.printStackTrace(); + + /** + * 转成list + * 泛型在编译期类型被擦除导致报错 + * @param gsonString + * @param cls + * @return + */ +// public static List GsonToList(String gsonString, Class cls) { +// List list = null; +// if (gson != null) { +// list = gson.fromJson(gsonString, new TypeToken>() { +// }.getType()); +// } +// return list; +// } + + /** + * 转成list + * 解决泛型在编译期类型被擦除导致报错 + */ + public static List toArray(String json, Class cls) { + List list = null; + if (null != json) { + list = new ArrayList(); + JsonArray array = JsonParser.parseString(json).getAsJsonArray(); + for (final JsonElement elem : array) { + list.add(gson.fromJson(elem, cls)); + } } - return null; + return list; } - public static List toArray(String text, Class clazz) { - try { - return JSONObject.parseArray(text, clazz); - } catch (Exception e) { - e.printStackTrace(); + + /** + * 转成list中有map的 + */ + public static List> toListMaps(String gsonString) { + List> list = null; + if (null != gsonString) { + list = gson.fromJson(gsonString, + new TypeToken>>() { + }.getType()); } - return null; + return list; } + + /** + * 转成map的 + */ + public static Map toMaps(String gsonString) { + Map map = null; + if (null != gsonString) { + map = gson.fromJson(gsonString, new TypeToken>() { + }.getType()); + } + return map; + } } diff --git a/app/build.gradle b/app/build.gradle index 2ff0585..e01c98a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,12 +32,12 @@ android { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation 'com.google.android.material:material:1.3.0' + implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.navigation:navigation-fragment:2.3.5' implementation 'androidx.navigation:navigation-ui:2.3.5' implementation project(path: ':OpenIM-SDK') testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }