GsonUtils.smali
.class public final Lcom/blankj/utilcode/util/GsonUtils;
.super Ljava/lang/Object;
.source "GsonUtils.java"
# static fields
.field private static final GSON:Lcom/google/gson/Gson;
.field private static final GSON_NO_NULLS:Lcom/google/gson/Gson;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 24
const/4 v0, 0x1
invoke-static {v0}, Lcom/blankj/utilcode/util/GsonUtils;->createGson(Z)Lcom/google/gson/Gson;
move-result-object v0
sput-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
.line 26
const/4 v0, 0x0
invoke-static {v0}, Lcom/blankj/utilcode/util/GsonUtils;->createGson(Z)Lcom/google/gson/Gson;
move-result-object v0
sput-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON_NO_NULLS:Lcom/google/gson/Gson;
return-void
.end method
.method private constructor <init>()V
.registers 3
.line 28
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 29
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string/jumbo v1, "u can\'t instantiate me..."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static createGson(Z)Lcom/google/gson/Gson;
.registers 3
.param p0, "serializeNulls" # Z
.line 199
new-instance v0, Lcom/google/gson/GsonBuilder;
invoke-direct {v0}, Lcom/google/gson/GsonBuilder;-><init>()V
.line 200
.local v0, "builder":Lcom/google/gson/GsonBuilder;
if-eqz p0, :cond_a
invoke-virtual {v0}, Lcom/google/gson/GsonBuilder;->serializeNulls()Lcom/google/gson/GsonBuilder;
.line 201
:cond_a
invoke-virtual {v0}, Lcom/google/gson/GsonBuilder;->create()Lcom/google/gson/Gson;
move-result-object v1
return-object v1
.end method
.method public static fromJson(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.param p0, "reader" # Ljava/io/Reader;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/io/Reader;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 126
.local p1, "type":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->fromJson(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 3
.param p0, "reader" # Ljava/io/Reader;
.param p1, "type" # Ljava/lang/reflect/Type;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/io/Reader;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.line 137
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.param p0, "json" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 104
.local p1, "type":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 3
.param p0, "json" # Ljava/lang/String;
.param p1, "type" # Ljava/lang/reflect/Type;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.line 115
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static getArrayType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 2
.param p0, "type" # Ljava/lang/reflect/Type;
.line 178
invoke-static {p0}, Lcom/google/gson/reflect/TypeToken;->getArray(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object v0
invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public static getGson()Lcom/google/gson/Gson;
.registers 1
.line 38
const/4 v0, 0x1
invoke-static {v0}, Lcom/blankj/utilcode/util/GsonUtils;->getGson(Z)Lcom/google/gson/Gson;
move-result-object v0
return-object v0
.end method
.method public static getGson(Z)Lcom/google/gson/Gson;
.registers 2
.param p0, "serializeNulls" # Z
.line 48
if-eqz p0, :cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON_NO_NULLS:Lcom/google/gson/Gson;
goto :goto_7
:cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
:goto_7
return-object v0
.end method
.method public static getListType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 4
.param p0, "type" # Ljava/lang/reflect/Type;
.line 147
const-class v0, Ljava/util/List;
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/reflect/Type;
const/4 v2, 0x0
aput-object p0, v1, v2
invoke-static {v0, v1}, Lcom/google/gson/reflect/TypeToken;->getParameterized(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object v0
invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public static getMapType(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 5
.param p0, "keyType" # Ljava/lang/reflect/Type;
.param p1, "valueType" # Ljava/lang/reflect/Type;
.line 168
const-class v0, Ljava/util/Map;
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/reflect/Type;
const/4 v2, 0x0
aput-object p0, v1, v2
const/4 v2, 0x1
aput-object p1, v1, v2
invoke-static {v0, v1}, Lcom/google/gson/reflect/TypeToken;->getParameterized(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object v0
invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public static getSetType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 4
.param p0, "type" # Ljava/lang/reflect/Type;
.line 157
const-class v0, Ljava/util/Set;
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/reflect/Type;
const/4 v2, 0x0
aput-object p0, v1, v2
invoke-static {v0, v1}, Lcom/google/gson/reflect/TypeToken;->getParameterized(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object v0
invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public static varargs getType(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 3
.param p0, "rawType" # Ljava/lang/reflect/Type;
.param p1, "typeArguments" # [Ljava/lang/reflect/Type;
.line 189
invoke-static {p0, p1}, Lcom/google/gson/reflect/TypeToken;->getParameterized(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object v0
invoke-virtual {v0}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public static toJson(Ljava/lang/Object;)Ljava/lang/String;
.registers 2
.param p0, "object" # Ljava/lang/Object;
.line 58
const/4 v0, 0x1
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/GsonUtils;->toJson(Ljava/lang/Object;Z)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
.registers 3
.param p0, "src" # Ljava/lang/Object;
.param p1, "typeOfSrc" # Ljava/lang/reflect/Type;
.line 80
const/4 v0, 0x1
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/GsonUtils;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Z)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Z)Ljava/lang/String;
.registers 4
.param p0, "src" # Ljava/lang/Object;
.param p1, "typeOfSrc" # Ljava/lang/reflect/Type;
.param p2, "includeNulls" # Z
.line 92
if-eqz p2, :cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
goto :goto_7
:cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON_NO_NULLS:Lcom/google/gson/Gson;
:goto_7
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static toJson(Ljava/lang/Object;Z)Ljava/lang/String;
.registers 3
.param p0, "object" # Ljava/lang/Object;
.param p1, "includeNulls" # Z
.line 69
if-eqz p1, :cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON:Lcom/google/gson/Gson;
goto :goto_7
:cond_5
sget-object v0, Lcom/blankj/utilcode/util/GsonUtils;->GSON_NO_NULLS:Lcom/google/gson/Gson;
:goto_7
invoke-virtual {v0, p0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method