JSONObject.smali
.class public Lcom/alibaba/fastjson/JSONObject;
.super Lcom/alibaba/fastjson/JSON;
.source "JSONObject.java"
# interfaces
.implements Ljava/util/Map;
.implements Ljava/lang/Cloneable;
.implements Ljava/io/Serializable;
.implements Ljava/lang/reflect/InvocationHandler;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/JSON;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;",
"Ljava/lang/Cloneable;",
"Ljava/io/Serializable;",
"Ljava/lang/reflect/InvocationHandler;"
}
.end annotation
# static fields
.field private static final DEFAULT_INITIAL_CAPACITY:I
.field private static final serialVersionUID:J = 0x1L
# instance fields
.field private final map:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x157f
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/alibaba/fastjson/JSONObject;->DEFAULT_INITIAL_CAPACITY:I
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 59
const/16 v0, 0x10
const/4 v1, 0x0
invoke-direct {p0, v0, v1}, Lcom/alibaba/fastjson/JSONObject;-><init>(IZ)V
.line 60
return-void
.end method
.method public constructor <init>(I)V
.registers 3
.param p1, "initialCapacity" # I
.line 71
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/JSONObject;-><init>(IZ)V
.line 72
return-void
.end method
.method public constructor <init>(IZ)V
.registers 4
.param p1, "initialCapacity" # I
.param p2, "ordered" # Z
.line 74
invoke-direct {p0}, Lcom/alibaba/fastjson/JSON;-><init>()V
.line 75
if-eqz p2, :cond_d
.line 76
new-instance v0, Ljava/util/LinkedHashMap;
invoke-direct {v0, p1}, Ljava/util/LinkedHashMap;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
goto :goto_14
.line 78
:cond_d
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0, p1}, Ljava/util/HashMap;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
.line 80
:goto_14
return-void
.end method
.method public constructor <init>(Ljava/util/Map;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;)V"
}
.end annotation
.line 62
.local p1, "map":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;"
invoke-direct {p0}, Lcom/alibaba/fastjson/JSON;-><init>()V
.line 63
iput-object p1, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
.line 64
return-void
.end method
.method public constructor <init>(Z)V
.registers 3
.param p1, "ordered" # Z
.line 67
const/16 v0, 0x10
invoke-direct {p0, v0, p1}, Lcom/alibaba/fastjson/JSONObject;-><init>(IZ)V
.line 68
return-void
.end method
# virtual methods
.method public clear()V
.registers 2
.line 302
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
.line 303
return-void
.end method
.method public clone()Ljava/lang/Object;
.registers 4
.line 323
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
new-instance v1, Ljava/util/HashMap;
iget-object v2, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-direct {v1, v2}, Ljava/util/HashMap;-><init>(Ljava/util/Map;)V
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
return-object v0
.end method
.method public containsKey(Ljava/lang/Object;)Z
.registers 3
.param p1, "key" # Ljava/lang/Object;
.line 91
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public containsValue(Ljava/lang/Object;)Z
.registers 3
.param p1, "value" # Ljava/lang/Object;
.line 95
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->containsValue(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public entrySet()Ljava/util/Set;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/util/Map$Entry<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;>;"
}
.end annotation
.line 318
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 3
.param p1, "obj" # Ljava/lang/Object;
.line 327
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-virtual {v0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public get(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.param p1, "key" # Ljava/lang/Object;
.line 99
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 254
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 256
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToBigDecimal(Ljava/lang/Object;)Ljava/math/BigDecimal;
move-result-object v1
return-object v1
.end method
.method public getBigInteger(Ljava/lang/String;)Ljava/math/BigInteger;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 260
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 262
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToBigInteger(Ljava/lang/Object;)Ljava/math/BigInteger;
move-result-object v1
return-object v1
.end method
.method public getBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 128
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 130
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 131
const/4 v1, 0x0
return-object v1
.line 134
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToBoolean(Ljava/lang/Object;)Ljava/lang/Boolean;
move-result-object v1
return-object v1
.end method
.method public getBooleanValue(Ljava/lang/String;)Z
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 148
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 150
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 151
const/4 v1, 0x0
return v1
.line 154
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToBoolean(Ljava/lang/Object;)Ljava/lang/Boolean;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
return v1
.end method
.method public getByte(Ljava/lang/String;)Ljava/lang/Byte;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 158
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 160
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToByte(Ljava/lang/Object;)Ljava/lang/Byte;
move-result-object v1
return-object v1
.end method
.method public getByteValue(Ljava/lang/String;)B
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 164
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 166
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 167
const/4 v1, 0x0
return v1
.line 170
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToByte(Ljava/lang/Object;)Ljava/lang/Byte;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Byte;->byteValue()B
move-result v1
return v1
.end method
.method public getBytes(Ljava/lang/String;)[B
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 138
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 140
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 141
const/4 v1, 0x0
return-object v1
.line 144
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToBytes(Ljava/lang/Object;)[B
move-result-object v1
return-object v1
.end method
.method public getDate(Ljava/lang/String;)Ljava/util/Date;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 276
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 278
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToDate(Ljava/lang/Object;)Ljava/util/Date;
move-result-object v1
return-object v1
.end method
.method public getDouble(Ljava/lang/String;)Ljava/lang/Double;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 238
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 240
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToDouble(Ljava/lang/Object;)Ljava/lang/Double;
move-result-object v1
return-object v1
.end method
.method public getDoubleValue(Ljava/lang/String;)D
.registers 5
.param p1, "key" # Ljava/lang/String;
.line 244
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 246
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_9
.line 247
const-wide/16 v1, 0x0
return-wide v1
.line 250
:cond_9
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToDouble(Ljava/lang/Object;)Ljava/lang/Double;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Double;->doubleValue()D
move-result-wide v1
return-wide v1
.end method
.method public getFloat(Ljava/lang/String;)Ljava/lang/Float;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 222
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 224
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToFloat(Ljava/lang/Object;)Ljava/lang/Float;
move-result-object v1
return-object v1
.end method
.method public getFloatValue(Ljava/lang/String;)F
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 228
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 230
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 231
const/4 v1, 0x0
return v1
.line 234
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToFloat(Ljava/lang/Object;)Ljava/lang/Float;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Float;->floatValue()F
move-result v1
return v1
.end method
.method public getIntValue(Ljava/lang/String;)I
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 196
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 198
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 199
const/4 v1, 0x0
return v1
.line 202
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToInt(Ljava/lang/Object;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
return v1
.end method
.method public getInteger(Ljava/lang/String;)Ljava/lang/Integer;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 190
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 192
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToInt(Ljava/lang/Object;)Ljava/lang/Integer;
move-result-object v1
return-object v1
.end method
.method public getJSONArray(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONArray;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 113
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 115
.local v0, "value":Ljava/lang/Object;
instance-of v1, v0, Lcom/alibaba/fastjson/JSONArray;
if-eqz v1, :cond_e
.line 116
move-object v1, v0
check-cast v1, Lcom/alibaba/fastjson/JSONArray;
return-object v1
.line 119
:cond_e
invoke-static {v0}, Lcom/alibaba/fastjson/JSONObject;->toJSON(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/alibaba/fastjson/JSONArray;
return-object v1
.end method
.method public getJSONObject(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONObject;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 103
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 105
.local v0, "value":Ljava/lang/Object;
instance-of v1, v0, Lcom/alibaba/fastjson/JSONObject;
if-eqz v1, :cond_e
.line 106
move-object v1, v0
check-cast v1, Lcom/alibaba/fastjson/JSONObject;
return-object v1
.line 109
:cond_e
invoke-static {v0}, Lcom/alibaba/fastjson/JSONObject;->toJSON(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/alibaba/fastjson/JSONObject;
return-object v1
.end method
.method public getLong(Ljava/lang/String;)Ljava/lang/Long;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 206
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 208
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToLong(Ljava/lang/Object;)Ljava/lang/Long;
move-result-object v1
return-object v1
.end method
.method public getLongValue(Ljava/lang/String;)J
.registers 5
.param p1, "key" # Ljava/lang/String;
.line 212
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 214
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_9
.line 215
const-wide/16 v1, 0x0
return-wide v1
.line 218
:cond_9
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToLong(Ljava/lang/Object;)Ljava/lang/Long;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v1
return-wide v1
.end method
.method public getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 5
.param p1, "key" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 123
.local p2, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 124
.local v0, "obj":Ljava/lang/Object;
invoke-static {v0, p2}, Lcom/alibaba/fastjson/util/TypeUtils;->castToJavaBean(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v1
return-object v1
.end method
.method public getShort(Ljava/lang/String;)Ljava/lang/Short;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 174
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 176
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToShort(Ljava/lang/Object;)Ljava/lang/Short;
move-result-object v1
return-object v1
.end method
.method public getShortValue(Ljava/lang/String;)S
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 180
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 182
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 183
const/4 v1, 0x0
return v1
.line 186
:cond_8
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToShort(Ljava/lang/Object;)Ljava/lang/Short;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Short;->shortValue()S
move-result v1
return v1
.end method
.method public getSqlDate(Ljava/lang/String;)Ljava/sql/Date;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 282
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 284
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToSqlDate(Ljava/lang/Object;)Ljava/sql/Date;
move-result-object v1
return-object v1
.end method
.method public getString(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 266
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 268
.local v0, "value":Ljava/lang/Object;
if-nez v0, :cond_8
.line 269
const/4 v1, 0x0
return-object v1
.line 272
:cond_8
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public getTimestamp(Ljava/lang/String;)Ljava/sql/Timestamp;
.registers 4
.param p1, "key" # Ljava/lang/String;
.line 288
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 290
.local v0, "value":Ljava/lang/Object;
invoke-static {v0}, Lcom/alibaba/fastjson/util/TypeUtils;->castToTimestamp(Ljava/lang/Object;)Ljava/sql/Timestamp;
move-result-object v1
return-object v1
.end method
.method public hashCode()I
.registers 2
.line 331
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
.registers 13
.param p1, "proxy" # Ljava/lang/Object;
.param p2, "method" # Ljava/lang/reflect/Method;
.param p3, "args" # [Ljava/lang/Object;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.line 335
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v0
.line 336
.local v0, "parameterTypes":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
array-length v1, v0
const/4 v2, 0x3
const/4 v3, 0x1
const/4 v4, 0x0
if-ne v1, v3, :cond_94
.line 337
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v1
const-string v5, "equals"
invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_21
.line 338
aget-object v1, p3, v4
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONObject;->equals(Ljava/lang/Object;)Z
move-result v1
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v1
return-object v1
.line 341
:cond_21
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v1
.line 342
.local v1, "returnType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
sget-object v5, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
const-string v6, "illegal setter"
if-ne v1, v5, :cond_8e
.line 346
const/4 v5, 0x0
.line 347
.local v5, "name":Ljava/lang/String;
const-class v7, Lcom/alibaba/fastjson/annotation/JSONField;
invoke-virtual {p2, v7}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v7
check-cast v7, Lcom/alibaba/fastjson/annotation/JSONField;
.line 348
.local v7, "annotation":Lcom/alibaba/fastjson/annotation/JSONField;
if-eqz v7, :cond_44
.line 349
invoke-interface {v7}, Lcom/alibaba/fastjson/annotation/JSONField;->name()Ljava/lang/String;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v8
if-eqz v8, :cond_44
.line 350
invoke-interface {v7}, Lcom/alibaba/fastjson/annotation/JSONField;->name()Ljava/lang/String;
move-result-object v5
.line 354
:cond_44
if-nez v5, :cond_85
.line 355
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
.line 357
const-string/jumbo v8, "set"
invoke-virtual {v5, v8}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_7f
.line 361
invoke-virtual {v5, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 362
.end local v5 # "name":Ljava/lang/String;
.local v2, "name":Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
if-eqz v5, :cond_79
.line 365
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v6
invoke-static {v6}, Ljava/lang/Character;->toLowerCase(C)C
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
goto :goto_85
.line 363
.end local v5 # "name":Ljava/lang/String;
.restart local v2 # "name":Ljava/lang/String;
:cond_79
new-instance v3, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v3, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 358
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
:cond_7f
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 368
:cond_85
:goto_85
iget-object v2, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
aget-object v3, p3, v4
invoke-interface {v2, v5, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 369
const/4 v2, 0x0
return-object v2
.line 343
.end local v5 # "name":Ljava/lang/String;
.end local v7 # "annotation":Lcom/alibaba/fastjson/annotation/JSONField;
:cond_8e
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 372
.end local v1 # "returnType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_94
array-length v1, v0
if-nez v1, :cond_167
.line 373
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v1
.line 374
.restart local v1 # "returnType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
sget-object v5, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
const-string v6, "illegal getter"
if-eq v1, v5, :cond_161
.line 378
const/4 v5, 0x0
.line 379
.restart local v5 # "name":Ljava/lang/String;
const-class v7, Lcom/alibaba/fastjson/annotation/JSONField;
invoke-virtual {p2, v7}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v7
check-cast v7, Lcom/alibaba/fastjson/annotation/JSONField;
.line 380
.restart local v7 # "annotation":Lcom/alibaba/fastjson/annotation/JSONField;
if-eqz v7, :cond_ba
.line 381
invoke-interface {v7}, Lcom/alibaba/fastjson/annotation/JSONField;->name()Ljava/lang/String;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v8
if-eqz v8, :cond_ba
.line 382
invoke-interface {v7}, Lcom/alibaba/fastjson/annotation/JSONField;->name()Ljava/lang/String;
move-result-object v5
.line 386
:cond_ba
if-nez v5, :cond_14e
.line 387
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
.line 388
const-string v8, "get"
invoke-virtual {v5, v8}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_f4
.line 389
invoke-virtual {v5, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 390
.end local v5 # "name":Ljava/lang/String;
.restart local v2 # "name":Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
if-eqz v5, :cond_ee
.line 393
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v4
invoke-static {v4}, Ljava/lang/Character;->toLowerCase(C)C
move-result v4
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
goto :goto_14e
.line 391
.end local v5 # "name":Ljava/lang/String;
.restart local v2 # "name":Ljava/lang/String;
:cond_ee
new-instance v3, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v3, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 394
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
:cond_f4
const-string v2, "is"
invoke-virtual {v5, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_129
.line 395
const/4 v2, 0x2
invoke-virtual {v5, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 396
.end local v5 # "name":Ljava/lang/String;
.restart local v2 # "name":Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
if-eqz v5, :cond_123
.line 399
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v4
invoke-static {v4}, Ljava/lang/Character;->toLowerCase(C)C
move-result v4
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
goto :goto_14e
.line 397
.end local v5 # "name":Ljava/lang/String;
.restart local v2 # "name":Ljava/lang/String;
:cond_123
new-instance v3, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v3, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 400
.end local v2 # "name":Ljava/lang/String;
.restart local v5 # "name":Ljava/lang/String;
:cond_129
const-string v2, "hashCode"
invoke-virtual {v5, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_13a
.line 401
invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONObject;->hashCode()I
move-result v2
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
return-object v2
.line 402
:cond_13a
const-string/jumbo v2, "toString"
invoke-virtual {v5, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_148
.line 403
invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONObject;->toString()Ljava/lang/String;
move-result-object v2
return-object v2
.line 405
:cond_148
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 409
:cond_14e
:goto_14e
iget-object v2, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v2, v5}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
.line 410
.local v2, "value":Ljava/lang/Object;
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v3
invoke-static {}, Lcom/alibaba/fastjson/parser/ParserConfig;->getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
move-result-object v4
invoke-static {v2, v3, v4}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v3
return-object v3
.line 375
.end local v2 # "value":Ljava/lang/Object;
.end local v5 # "name":Ljava/lang/String;
.end local v7 # "annotation":Lcom/alibaba/fastjson/annotation/JSONField;
:cond_161
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v6}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 413
.end local v1 # "returnType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_167
new-instance v1, Ljava/lang/UnsupportedOperationException;
invoke-virtual {p2}, Ljava/lang/reflect/Method;->toGenericString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public isEmpty()Z
.registers 2
.line 87
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->isEmpty()Z
move-result v0
return v0
.end method
.method public keySet()Ljava/util/Set;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 310
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.param p1, "x0" # Ljava/lang/Object;
.param p2, "x1" # Ljava/lang/Object;
.line 51
move-object v0, p1
check-cast v0, Ljava/lang/String;
invoke-virtual {p0, v0, p2}, Lcom/alibaba/fastjson/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.param p1, "key" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/Object;
.line 294
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public putAll(Ljava/util/Map;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"+",
"Ljava/lang/String;",
"+",
"Ljava/lang/Object;",
">;)V"
}
.end annotation
.line 298
.local p1, "m":Ljava/util/Map;, "Ljava/util/Map<+Ljava/lang/String;+Ljava/lang/Object;>;"
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->putAll(Ljava/util/Map;)V
.line 299
return-void
.end method
.method public remove(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.param p1, "key" # Ljava/lang/Object;
.line 306
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public size()I
.registers 2
.line 83
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->size()I
move-result v0
return v0
.end method
.method public values()Ljava/util/Collection;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Collection<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.line 314
iget-object v0, p0, Lcom/alibaba/fastjson/JSONObject;->map:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection;
move-result-object v0
return-object v0
.end method