DefaultJSONParser.smali
.class public Lcom/alibaba/fastjson/parser/DefaultJSONParser;
.super Lcom/alibaba/fastjson/parser/AbstractJSONParser;
.source "DefaultJSONParser.java"
# interfaces
.implements Ljava/io/Closeable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
}
.end annotation
# static fields
.field public static final NONE:I = 0x0
.field public static final NeedToResolve:I = 0x1
.field public static final TypeNameRedirect:I = 0x2
.field private static final primitiveClasses:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
# instance fields
.field protected config:Lcom/alibaba/fastjson/parser/ParserConfig;
.field protected context:Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArrayIndex:I
.field private dateFormat:Ljava/text/DateFormat;
.field private dateFormatPattern:Ljava/lang/String;
.field private extraProcessors:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.end field
.field private extraTypeProviders:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.end field
.field protected final input:Ljava/lang/Object;
.field protected final lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.field private resolveStatus:I
.field private resolveTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;",
">;"
}
.end annotation
.end field
.field protected final symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 80
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
.line 104
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 105
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 106
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 107
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 108
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 109
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 110
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 112
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Boolean;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 113
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Byte;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 114
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Short;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 115
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Integer;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 116
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Long;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 117
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Float;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 118
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/Double;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 120
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/math/BigInteger;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 121
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/math/BigDecimal;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 122
sget-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
const-class v1, Ljava/lang/String;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 123
return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;)V
.registers 3
.param p1, "lexer" # Lcom/alibaba/fastjson/parser/JSONLexer;
.line 162
invoke-static {}, Lcom/alibaba/fastjson/parser/ParserConfig;->getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
move-result-object v0
invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.line 163
return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 4
.param p1, "lexer" # Lcom/alibaba/fastjson/parser/JSONLexer;
.param p2, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.line 166
const/4 v0, 0x0
invoke-direct {p0, v0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.line 167
return-void
.end method
.method public constructor <init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 5
.param p1, "input" # Ljava/lang/Object;
.param p2, "lexer" # Lcom/alibaba/fastjson/parser/JSONLexer;
.param p3, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.line 169
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/AbstractJSONParser;-><init>()V
.line 82
sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
.line 89
const/16 v0, 0x8
new-array v0, v0, [Lcom/alibaba/fastjson/parser/ParseContext;
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.line 90
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
.line 98
iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
.line 100
const/4 v0, 0x0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
.line 101
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
.line 170
iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.line 171
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
.line 172
iput-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
.line 173
invoke-virtual {p3}, Lcom/alibaba/fastjson/parser/ParserConfig;->getSymbolTable()Lcom/alibaba/fastjson/parser/SymbolTable;
move-result-object v0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
.line 175
const/16 v0, 0xc
invoke-interface {p2, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 176
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 4
.param p1, "input" # Ljava/lang/String;
.line 146
invoke-static {}, Lcom/alibaba/fastjson/parser/ParserConfig;->getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
move-result-object v0
sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
.line 147
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 5
.param p1, "input" # Ljava/lang/String;
.param p2, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.line 150
new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {v0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, p1, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.line 151
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
.registers 5
.param p1, "input" # Ljava/lang/String;
.param p2, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.param p3, "features" # I
.line 154
new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-direct {v0, p1, p3}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, p1, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.line 155
return-void
.end method
.method public constructor <init>([CILcom/alibaba/fastjson/parser/ParserConfig;I)V
.registers 6
.param p1, "input" # [C
.param p2, "length" # I
.param p3, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.param p4, "features" # I
.line 158
new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-direct {v0, p1, p2, p4}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>([CII)V
invoke-direct {p0, p1, v0, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.line 159
return-void
.end method
.method private addContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.registers 8
.param p1, "context" # Lcom/alibaba/fastjson/parser/ParseContext;
.line 1160
iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
add-int/lit8 v1, v0, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
.line 1161
.local v0, "i":I
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
array-length v2, v1
if-lt v0, v2, :cond_19
.line 1162
array-length v2, v1
mul-int/lit8 v2, v2, 0x3
div-int/lit8 v2, v2, 0x2
.line 1163
.local v2, "newLen":I
new-array v3, v2, [Lcom/alibaba/fastjson/parser/ParseContext;
.line 1164
.local v3, "newArray":[Lcom/alibaba/fastjson/parser/ParseContext;
array-length v4, v1
const/4 v5, 0x0
invoke-static {v1, v5, v3, v5, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1165
iput-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.line 1167
.end local v2 # "newLen":I
.end local v3 # "newArray":[Lcom/alibaba/fastjson/parser/ParseContext;
:cond_19
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
aput-object p1, v1, v0
.line 1168
return-void
.end method
# virtual methods
.method public final accept(I)V
.registers 6
.param p1, "token" # I
.line 1278
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 1279
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
if-ne v1, p1, :cond_e
.line 1280
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1285
return-void
.line 1282
:cond_e
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "syntax error, expect "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ", actual "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public final accept(II)V
.registers 7
.param p1, "token" # I
.param p2, "nextExpectToken" # I
.line 1288
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 1289
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
if-ne v1, p1, :cond_e
.line 1290
invoke-interface {v0, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1295
return-void
.line 1292
:cond_e
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "syntax error, expect "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ", actual "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
.registers 4
.param p1, "task" # Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.line 1091
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
if-nez v0, :cond_c
.line 1092
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
.line 1094
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1095
return-void
.end method
.method public checkListResolve(Ljava/util/Collection;)V
.registers 7
.param p1, "array" # Ljava/util/Collection;
.line 937
iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
const/4 v1, 0x1
if-ne v0, v1, :cond_3b
.line 938
instance-of v0, p1, Ljava/util/List;
const/4 v2, 0x0
if-eqz v0, :cond_27
.line 939
invoke-interface {p1}, Ljava/util/Collection;->size()I
move-result v0
sub-int/2addr v0, v1
.line 940
.local v0, "index":I
move-object v1, p1
check-cast v1, Ljava/util/List;
.line 941
.local v1, "list":Ljava/util/List;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object v3
.line 942
.local v3, "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
new-instance v4, Lcom/alibaba/fastjson/parser/deserializer/ListResolveFieldDeserializer;
invoke-direct {v4, p0, v1, v0}, Lcom/alibaba/fastjson/parser/deserializer/ListResolveFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/util/List;I)V
invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setFieldDeserializer(Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;)V
.line 943
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setOwnerContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 944
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 945
.end local v0 # "index":I
.end local v1 # "list":Ljava/util/List;
.end local v3 # "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
goto :goto_3b
.line 946
:cond_27
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object v0
.line 947
.local v0, "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
new-instance v1, Lcom/alibaba/fastjson/parser/deserializer/CollectionResolveFieldDeserializer;
invoke-direct {v1, p0, p1}, Lcom/alibaba/fastjson/parser/deserializer/CollectionResolveFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/util/Collection;)V
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setFieldDeserializer(Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;)V
.line 948
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setOwnerContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 949
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 952
.end local v0 # "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
:cond_3b
:goto_3b
return-void
.end method
.method public checkMapResolve(Ljava/util/Map;Ljava/lang/String;)V
.registers 6
.param p1, "object" # Ljava/util/Map;
.param p2, "fieldName" # Ljava/lang/String;
.line 956
iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
const/4 v1, 0x1
if-ne v0, v1, :cond_1a
.line 957
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/MapResolveFieldDeserializer;
invoke-direct {v0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/MapResolveFieldDeserializer;-><init>(Ljava/util/Map;Ljava/lang/String;)V
.line 958
.local v0, "fieldResolver":Lcom/alibaba/fastjson/parser/deserializer/MapResolveFieldDeserializer;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object v1
.line 959
.local v1, "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setFieldDeserializer(Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;)V
.line 960
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->setOwnerContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 961
const/4 v2, 0x0
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 963
.end local v0 # "fieldResolver":Lcom/alibaba/fastjson/parser/deserializer/MapResolveFieldDeserializer;
.end local v1 # "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
:cond_1a
return-void
.end method
.method public close()V
.registers 5
.line 1298
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 1301
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
:try_start_4
sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->AutoCloseSource:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v1
if-eqz v1, :cond_34
.line 1302
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x14
if-ne v1, v2, :cond_15
goto :goto_34
.line 1303
:cond_15
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not close json text, token : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v0 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
throw v1
:try_end_34
.catchall {:try_start_4 .. :try_end_34} :catchall_39
.line 1307
.restart local v0 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
:cond_34
:goto_34
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
.line 1308
nop
.line 1309
return-void
.line 1307
:catchall_39
move-exception v1
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
throw v1
.end method
.method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V
.registers 4
.param p1, "feature" # Lcom/alibaba/fastjson/parser/Feature;
.param p2, "state" # Z
.line 1266
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
invoke-interface {v0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->config(Lcom/alibaba/fastjson/parser/Feature;Z)V
.line 1267
return-void
.end method
.method public getConfig()Lcom/alibaba/fastjson/parser/ParserConfig;
.registers 2
.line 510
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
return-object v0
.end method
.method public getContext()Lcom/alibaba/fastjson/parser/ParseContext;
.registers 2
.line 1087
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
return-object v0
.end method
.method public getDateFomartPattern()Ljava/lang/String;
.registers 2
.line 126
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
return-object v0
.end method
.method public getDateFormat()Ljava/text/DateFormat;
.registers 3
.line 130
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
if-nez v0, :cond_d
.line 131
new-instance v0, Ljava/text/SimpleDateFormat;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
.line 133
:cond_d
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
return-object v0
.end method
.method public getExtraProcessors()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.line 1102
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
if-nez v0, :cond_c
.line 1103
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
.line 1105
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
return-object v0
.end method
.method public getExtraProcessorsDirect()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.line 1109
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
return-object v0
.end method
.method public getExtraTypeProviders()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.line 1113
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
if-nez v0, :cond_c
.line 1114
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
.line 1116
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
return-object v0
.end method
.method public getExtraTypeProvidersDirect()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.line 1120
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
return-object v0
.end method
.method public getInput()Ljava/lang/String;
.registers 3
.line 183
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
instance-of v1, v0, [C
if-eqz v1, :cond_12
.line 184
new-instance v0, Ljava/lang/String;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
check-cast v1, [C
check-cast v1, [C
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.line 186
:cond_12
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.registers 3
.line 1098
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
return-object v0
.end method
.method public getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
.registers 2
.line 1274
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
return-object v0
.end method
.method public getObject(Ljava/lang/String;)Ljava/lang/Object;
.registers 4
.param p1, "path" # Ljava/lang/String;
.line 926
const/4 v0, 0x0
.local v0, "i":I
:goto_1
iget v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
if-ge v0, v1, :cond_1f
.line 927
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
aget-object v1, v1, v0
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/ParseContext;->getPath()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1c
.line 928
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
aget-object v1, v1, v0
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v1
return-object v1
.line 926
:cond_1c
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 932
.end local v0 # "i":I
:cond_1f
const/4 v0, 0x0
return-object v0
.end method
.method public getResolveStatus()I
.registers 2
.line 918
iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
return v0
.end method
.method public getSymbolTable()Lcom/alibaba/fastjson/parser/SymbolTable;
.registers 2
.line 179
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
return-object v0
.end method
.method public handleResovleTask(Ljava/lang/Object;)V
.registers 9
.param p1, "value" # Ljava/lang/Object;
.line 1312
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
if-nez v0, :cond_5
.line 1313
return-void
.line 1316
:cond_5
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
.line 1317
.local v0, "size":I
const/4 v1, 0x0
.local v1, "i":I
:goto_a
if-ge v1, v0, :cond_49
.line 1318
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.line 1319
.local v2, "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->getFieldDeserializer()Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
move-result-object v3
.line 1321
.local v3, "fieldDeser":Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
if-nez v3, :cond_1b
.line 1322
goto :goto_46
.line 1325
:cond_1b
const/4 v4, 0x0
.line 1326
.local v4, "object":Ljava/lang/Object;
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->getOwnerContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v5
if-eqz v5, :cond_2a
.line 1327
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->getOwnerContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v5
invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v4
.line 1330
:cond_2a
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->getReferenceValue()Ljava/lang/String;
move-result-object v5
.line 1332
.local v5, "ref":Ljava/lang/String;
const-string v6, "$"
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_3b
.line 1333
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getObject(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v6
.local v6, "refValue":Ljava/lang/Object;
goto :goto_43
.line 1335
.end local v6 # "refValue":Ljava/lang/Object;
:cond_3b
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v6
invoke-virtual {v6}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v6
.line 1337
.restart local v6 # "refValue":Ljava/lang/Object;
:goto_43
invoke-virtual {v3, v4, v6}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
.line 1317
.end local v2 # "task":Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.end local v3 # "fieldDeser":Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.end local v4 # "object":Ljava/lang/Object;
.end local v5 # "ref":Ljava/lang/String;
.end local v6 # "refValue":Ljava/lang/Object;
:goto_46
add-int/lit8 v1, v1, 0x1
goto :goto_a
.line 1339
.end local v1 # "i":I
:cond_49
return-void
.end method
.method public isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
.registers 3
.param p1, "feature" # Lcom/alibaba/fastjson/parser/Feature;
.line 1270
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
return v0
.end method
.method public parse()Ljava/lang/Object;
.registers 2
.line 1171
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parse(Ljava/lang/Object;)Ljava/lang/Object;
.registers 15
.param p1, "fieldName" # Ljava/lang/Object;
.line 1184
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 1185
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/4 v2, 0x2
const/4 v3, 0x0
if-eq v1, v2, :cond_14d
const/4 v4, 0x3
if-eq v1, v4, :cond_13b
const/4 v4, 0x4
if-eq v1, v4, :cond_104
const/16 v4, 0xc
if-eq v1, v4, :cond_f8
const/16 v4, 0xe
if-eq v1, v4, :cond_ed
packed-switch v1, :pswitch_data_158
const-wide/16 v4, 0x0
packed-switch v1, :pswitch_data_164
move-object v1, v3
.local v1, "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.local v2, "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v6, v3
.local v6, "value":Ljava/lang/Object;
move-object v7, v3
.local v4, "time":J
.local v7, "stringLiteral":Ljava/lang/String;
move-object v8, v3
.local v8, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v9, v3
.line 1261
.local v3, "array":Lcom/alibaba/fastjson/JSONArray;
.local v9, "intValue":Ljava/lang/Number;
new-instance v10, Lcom/alibaba/fastjson/JSONException;
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v12, "syntax error, pos "
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->getBufferPosition()I
move-result v12
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
invoke-direct {v10, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v10
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "time":J
.end local v6 # "value":Ljava/lang/Object;
.end local v7 # "stringLiteral":Ljava/lang/String;
.end local v8 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v9 # "intValue":Ljava/lang/Number;
:pswitch_44
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.local v4, "value":Ljava/lang/Object;
move-object v5, v3
.local v5, "stringLiteral":Ljava/lang/String;
move-object v6, v3
.local v6, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v7, v3
.local v7, "intValue":Ljava/lang/Number;
move-object v8, v3
.line 1231
.local v8, "array":Lcom/alibaba/fastjson/JSONArray;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1232
return-object v3
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v4 # "value":Ljava/lang/Object;
.end local v5 # "stringLiteral":Ljava/lang/String;
.end local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v7 # "intValue":Ljava/lang/Number;
.end local v8 # "array":Lcom/alibaba/fastjson/JSONArray;
:pswitch_4f
move-object v1, v3
.line 1192
.local v1, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1193
new-instance v2, Ljava/util/TreeSet;
invoke-direct {v2}, Ljava/util/TreeSet;-><init>()V
.line 1194
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
invoke-virtual {p0, v2, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 1195
return-object v2
.line 1187
.end local v1 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
:pswitch_5c
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1188
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 1189
.restart local v1 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 1190
return-object v1
.line 1185
.end local v1 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
:pswitch_68
move-object v1, v3
.local v1, "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v6, v3
.local v6, "value":Ljava/lang/Object;
move-object v7, v3
.local v4, "time":J
.local v7, "stringLiteral":Ljava/lang/String;
move-object v8, v3
.local v8, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v9, v3
.restart local v9 # "intValue":Ljava/lang/Number;
move-object v10, v3
.line 1255
.local v10, "array":Lcom/alibaba/fastjson/JSONArray;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->isBlankInput()Z
move-result v11
if-eqz v11, :cond_76
.line 1256
return-object v3
.line 1258
:cond_76
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v12, "unterminated json string, pos "
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->getBufferPosition()I
move-result v12
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
invoke-direct {v3, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v4 # "time":J
.end local v6 # "value":Ljava/lang/Object;
.end local v7 # "stringLiteral":Ljava/lang/String;
.end local v8 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v9 # "intValue":Ljava/lang/Number;
.end local v10 # "array":Lcom/alibaba/fastjson/JSONArray;
:pswitch_92
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v4, v3
.local v4, "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v5, v3
.local v5, "value":Ljava/lang/Object;
move-object v6, v3
.local v6, "stringLiteral":Ljava/lang/String;
move-object v7, v3
.local v7, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v8, v3
.line 1240
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.local v8, "intValue":Ljava/lang/Number;
const/16 v9, 0x12
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1242
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v9, :cond_c1
.line 1245
const/16 v9, 0xa
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1247
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
.line 1248
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/Number;->longValue()J
move-result-wide v9
.line 1249
.local v9, "time":J
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
.line 1251
const/16 v2, 0xb
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
.line 1253
new-instance v2, Ljava/util/Date;
invoke-direct {v2, v9, v10}, Ljava/util/Date;-><init>(J)V
return-object v2
.line 1243
.end local v9 # "time":J
:cond_c1
new-instance v2, Lcom/alibaba/fastjson/JSONException;
const-string/jumbo v9, "syntax error"
invoke-direct {v2, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v5 # "value":Ljava/lang/Object;
.end local v6 # "stringLiteral":Ljava/lang/String;
.end local v7 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v8 # "intValue":Ljava/lang/Number;
:pswitch_ca
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.local v4, "value":Ljava/lang/Object;
move-object v5, v3
.local v5, "stringLiteral":Ljava/lang/String;
move-object v6, v3
.local v6, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v7, v3
.local v7, "intValue":Ljava/lang/Number;
move-object v8, v3
.line 1228
.local v8, "array":Lcom/alibaba/fastjson/JSONArray;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1229
return-object v3
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v4 # "value":Ljava/lang/Object;
.end local v5 # "stringLiteral":Ljava/lang/String;
.end local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v7 # "intValue":Ljava/lang/Number;
.end local v8 # "array":Lcom/alibaba/fastjson/JSONArray;
:pswitch_d5
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.restart local v4 # "value":Ljava/lang/Object;
move-object v5, v3
.restart local v5 # "stringLiteral":Ljava/lang/String;
move-object v6, v3
.restart local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v7, v3
.line 1237
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.restart local v7 # "intValue":Ljava/lang/Number;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1238
sget-object v8, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
return-object v8
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "value":Ljava/lang/Object;
.end local v5 # "stringLiteral":Ljava/lang/String;
.end local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v7 # "intValue":Ljava/lang/Number;
:pswitch_e1
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.restart local v4 # "value":Ljava/lang/Object;
move-object v5, v3
.restart local v5 # "stringLiteral":Ljava/lang/String;
move-object v6, v3
.restart local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v7, v3
.line 1234
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.restart local v7 # "intValue":Ljava/lang/Number;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1235
sget-object v8, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
return-object v8
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "value":Ljava/lang/Object;
.end local v5 # "stringLiteral":Ljava/lang/String;
.end local v6 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v7 # "intValue":Ljava/lang/Number;
:cond_ed
move-object v1, v3
.local v1, "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v2, v3
.line 1197
.local v2, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
new-instance v3, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v3}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
.line 1198
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
invoke-virtual {p0, v3, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 1199
return-object v3
.line 1185
.end local v1 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v2 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
:cond_f8
move-object v1, v3
.restart local v1 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v2, v3
.line 1201
.restart local v2 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
new-instance v4, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v4}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 1202
.local v4, "object":Lcom/alibaba/fastjson/JSONObject;
invoke-virtual {p0, v4, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
return-object v5
.line 1185
.end local v1 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v2 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "object":Lcom/alibaba/fastjson/JSONObject;
:cond_104
move-object v1, v3
.local v1, "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.local v2, "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.local v4, "value":Ljava/lang/Object;
move-object v5, v3
.local v5, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v6, v3
.line 1212
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.local v6, "intValue":Ljava/lang/Number;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v7
.line 1213
.local v7, "stringLiteral":Ljava/lang/String;
const/16 v8, 0x10
invoke-interface {v0, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1215
sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
invoke-interface {v0, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v8
if-eqz v8, :cond_13a
.line 1216
new-instance v8, Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-direct {v8, v7}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
.line 1218
.local v8, "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
:try_start_11f
invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v9
if-eqz v9, :cond_131
.line 1219
invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
move-result-object v9
invoke-virtual {v9}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v9
:try_end_12d
.catchall {:try_start_11f .. :try_end_12d} :catchall_135
.line 1222
invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
return-object v9
:cond_131
invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
.line 1223
goto :goto_13a
.line 1222
:catchall_135
move-exception v9
invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
throw v9
.line 1226
.end local v8 # "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
:cond_13a
:goto_13a
return-object v7
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "value":Ljava/lang/Object;
.end local v5 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v6 # "intValue":Ljava/lang/Number;
.end local v7 # "stringLiteral":Ljava/lang/String;
:cond_13b
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.local v4, "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
move-object v5, v3
.line 1208
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.local v5, "intValue":Ljava/lang/Number;
sget-object v6, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v6
invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v6
.line 1209
.local v6, "value":Ljava/lang/Object;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1210
return-object v6
.line 1185
.end local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
.end local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.end local v4 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
.end local v5 # "intValue":Ljava/lang/Number;
.end local v6 # "value":Ljava/lang/Object;
:cond_14d
move-object v1, v3
.restart local v1 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v2, v3
.restart local v2 # "treeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet<Ljava/lang/Object;>;"
move-object v4, v3
.line 1204
.restart local v3 # "array":Lcom/alibaba/fastjson/JSONArray;
.restart local v4 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/Object;>;"
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v5
.line 1205
.restart local v5 # "intValue":Ljava/lang/Number;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1206
return-object v5
:pswitch_data_158
.packed-switch 0x6
:pswitch_e1
:pswitch_d5
:pswitch_ca
:pswitch_92
.end packed-switch
:pswitch_data_164
.packed-switch 0x14
:pswitch_68
:pswitch_5c
:pswitch_4f
:pswitch_44
.end packed-switch
.end method
.method public parseArray(Ljava/lang/Class;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 557
.local p1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 558
.local v0, "array":Ljava/util/List;, "Ljava/util/List<TT;>;"
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.line 559
return-object v0
.end method
.method public parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.registers 3
.param p2, "array" # Ljava/util/Collection;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/Collection;",
")V"
}
.end annotation
.line 563
.local p1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
.line 564
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
.registers 4
.param p1, "type" # Ljava/lang/reflect/Type;
.param p2, "array" # Ljava/util/Collection;
.line 568
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
.line 569
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
.registers 11
.param p1, "type" # Ljava/lang/reflect/Type;
.param p2, "array" # Ljava/util/Collection;
.param p3, "fieldName" # Ljava/lang/Object;
.line 573
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x15
if-eq v0, v1, :cond_14
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x16
if-ne v0, v1, :cond_19
.line 574
:cond_14
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 577
:cond_19
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0xe
if-ne v0, v1, :cond_f6
.line 581
const/4 v0, 0x0
.line 582
.local v0, "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v2, 0x4
if-ne v1, p1, :cond_32
.line 583
sget-object v0, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
.line 584
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/4 v3, 0x2
invoke-interface {v1, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_4d
.line 585
:cond_32
const-class v1, Ljava/lang/String;
if-ne v1, p1, :cond_3e
.line 586
sget-object v0, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
.line 587
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_4d
.line 589
:cond_3e
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v1, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
.line 590
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v3
invoke-interface {v1, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 593
:goto_4d
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v1
.line 594
.local v1, "context":Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {p0, p2, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 596
const/4 v3, 0x0
.line 597
.local v3, "i":I
:goto_55
:try_start_55
sget-object v4, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v4
const/16 v5, 0x10
if-eqz v4, :cond_6d
.line 598
:goto_5f
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v5, :cond_6d
.line 599
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 600
goto :goto_5f
.line 604
:cond_6d
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
:try_end_73
.catchall {:try_start_55 .. :try_end_73} :catchall_f1
const/16 v6, 0xf
if-ne v4, v6, :cond_82
.line 605
nop
.line 644
.end local v3 # "i":I
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 645
nop
.line 647
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 648
return-void
.line 608
.restart local v3 # "i":I
:cond_82
:try_start_82
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-ne v4, p1, :cond_92
.line 609
sget-object v4, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
const/4 v6, 0x0
invoke-virtual {v4, p0, v6, v6}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
.line 610
.local v4, "val":Ljava/lang/Object;
invoke-interface {p2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 611
nop
.end local v4 # "val":Ljava/lang/Object;
goto :goto_dc
:cond_92
const-class v4, Ljava/lang/String;
if-ne v4, p1, :cond_bd
.line 613
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v2, :cond_aa
.line 614
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v4
.line 615
.local v4, "value":Ljava/lang/String;
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_b8
.line 617
.end local v4 # "value":Ljava/lang/String;
:cond_aa
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v4
.line 618
.local v4, "obj":Ljava/lang/Object;
if-nez v4, :cond_b3
.line 619
const/4 v6, 0x0
move-object v4, v6
.local v6, "value":Ljava/lang/String;
goto :goto_b8
.line 621
.end local v6 # "value":Ljava/lang/String;
:cond_b3
invoke-virtual {v4}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v6
move-object v4, v6
.line 625
.local v4, "value":Ljava/lang/String;
:goto_b8
invoke-interface {p2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 626
nop
.end local v4 # "value":Ljava/lang/String;
goto :goto_dc
.line 628
:cond_bd
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
const/16 v6, 0x8
if-ne v4, v6, :cond_ce
.line 629
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 630
const/4 v4, 0x0
.local v4, "val":Ljava/lang/Object;
goto :goto_d6
.line 632
.end local v4 # "val":Ljava/lang/Object;
:cond_ce
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-interface {v0, p0, p1, v4}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
.line 634
.restart local v4 # "val":Ljava/lang/Object;
:goto_d6
invoke-interface {p2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 635
invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
.line 638
.end local v4 # "val":Ljava/lang/Object;
:goto_dc
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v5, :cond_ed
.line 639
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v5
invoke-interface {v4, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_ed
.catchall {:try_start_82 .. :try_end_ed} :catchall_f1
.line 596
:cond_ed
add-int/lit8 v3, v3, 0x1
goto/16 :goto_55
.line 644
.end local v3 # "i":I
:catchall_f1
move-exception v2
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
throw v2
.line 578
.end local v0 # "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.end local v1 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
:cond_f6
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "exepct \'[\', but "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v2
invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_118
:goto_117
throw v0
:goto_118
goto :goto_117
.end method
.method public final parseArray(Ljava/util/Collection;)V
.registers 3
.param p1, "array" # Ljava/util/Collection;
.line 978
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 979
return-void
.end method
.method public final parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.registers 16
.param p1, "array" # Ljava/util/Collection;
.param p2, "fieldName" # Ljava/lang/Object;
.line 983
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 985
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x15
if-eq v1, v2, :cond_14
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x16
if-ne v1, v2, :cond_17
.line 986
:cond_14
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 989
:cond_17
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0xe
if-ne v1, v2, :cond_12d
.line 994
const/4 v1, 0x4
invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 996
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v3
.line 997
.local v3, "context":Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 999
const/4 v4, 0x0
.local v4, "i":I
const/4 v5, 0x0
move-object v6, v5
move-object v7, v6
move-object v8, v7
.line 1000
:goto_2f
:try_start_2f
sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v9
const/16 v10, 0x10
if-eqz v9, :cond_43
.line 1001
:goto_39
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v10, :cond_43
.line 1002
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 1003
goto :goto_39
.line 1008
:cond_43
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
const/4 v11, 0x2
if-eq v9, v11, :cond_10d
const/4 v11, 0x3
if-eq v9, v11, :cond_f5
if-eq v9, v1, :cond_ca
const/4 v11, 0x6
if-eq v9, v11, :cond_c3
const/4 v11, 0x7
if-eq v9, v11, :cond_bc
const/16 v11, 0x8
if-eq v9, v11, :cond_b7
const/16 v11, 0xc
if-eq v9, v11, :cond_a3
const/16 v11, 0x14
if-eq v9, v11, :cond_96
const/16 v11, 0x17
if-eq v9, v11, :cond_90
if-eq v9, v2, :cond_7d
const/16 v11, 0xf
if-eq v9, v11, :cond_72
.line 1069
.local v5, "value":Ljava/lang/Object;
.local v6, "object":Lcom/alibaba/fastjson/JSONObject;
.local v7, "items":Ljava/util/Collection;
.local v8, "stringLiteral":Ljava/lang/String;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v9
move-object v5, v9
goto/16 :goto_115
.line 1008
.end local v5 # "value":Ljava/lang/Object;
.end local v6 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v7 # "items":Ljava/util/Collection;
.end local v8 # "stringLiteral":Ljava/lang/String;
:cond_72
move-object v1, v5
.local v1, "value":Ljava/lang/Object;
move-object v2, v6
.local v2, "object":Lcom/alibaba/fastjson/JSONObject;
move-object v5, v7
.local v5, "items":Ljava/util/Collection;
move-object v6, v8
.line 1064
.local v6, "stringLiteral":Ljava/lang/String;
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_79
.catchall {:try_start_2f .. :try_end_79} :catchall_128
.line 1082
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-void
.line 1008
.end local v1 # "value":Ljava/lang/Object;
.end local v2 # "object":Lcom/alibaba/fastjson/JSONObject;
.local v5, "value":Ljava/lang/Object;
.local v6, "object":Lcom/alibaba/fastjson/JSONObject;
:cond_7d
move-object v7, v8
.line 1051
.local v7, "stringLiteral":Ljava/lang/String;
:try_start_7e
new-instance v8, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v8}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
.line 1052
.local v8, "items":Ljava/util/Collection;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
invoke-virtual {p0, v8, v9}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 1053
move-object v5, v8
.line 1054
move-object v12, v8
move-object v8, v7
move-object v7, v12
goto/16 :goto_115
.line 1060
.local v7, "items":Ljava/util/Collection;
.local v8, "stringLiteral":Ljava/lang/String;
:cond_90
const/4 v5, 0x0
.line 1061
invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1062
goto/16 :goto_115
.line 1008
.end local v5 # "value":Ljava/lang/Object;
.end local v6 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v7 # "items":Ljava/util/Collection;
.end local v8 # "stringLiteral":Ljava/lang/String;
:cond_96
move-object v1, v5
.restart local v1 # "value":Ljava/lang/Object;
move-object v2, v6
.restart local v2 # "object":Lcom/alibaba/fastjson/JSONObject;
move-object v5, v7
.local v5, "items":Ljava/util/Collection;
move-object v6, v8
.line 1067
.local v6, "stringLiteral":Ljava/lang/String;
new-instance v7, Lcom/alibaba/fastjson/JSONException;
const-string/jumbo v8, "unclosed jsonArray"
invoke-direct {v7, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v0 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v3 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "array":Ljava/util/Collection;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v7
.line 1008
.end local v1 # "value":Ljava/lang/Object;
.end local v2 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v6 # "stringLiteral":Ljava/lang/String;
.restart local v0 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v3 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.local v5, "value":Ljava/lang/Object;
.restart local p1 # "array":Ljava/util/Collection;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_a3
move-object v6, v8
.line 1047
.restart local v6 # "stringLiteral":Ljava/lang/String;
new-instance v8, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v8}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 1048
.local v8, "object":Lcom/alibaba/fastjson/JSONObject;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
invoke-virtual {p0, v8, v9}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v9
move-object v5, v9
.line 1049
move-object v12, v8
move-object v8, v6
move-object v6, v12
goto/16 :goto_115
.line 1056
.local v6, "object":Lcom/alibaba/fastjson/JSONObject;
.restart local v7 # "items":Ljava/util/Collection;
.local v8, "stringLiteral":Ljava/lang/String;
:cond_b7
const/4 v5, 0x0
.line 1057
invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1058
goto :goto_115
.line 1043
.end local v6 # "object":Lcom/alibaba/fastjson/JSONObject;
.end local v7 # "items":Ljava/util/Collection;
:cond_bc
sget-object v9, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
move-object v5, v9
.line 1044
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1045
goto :goto_115
.line 1039
:cond_c3
sget-object v9, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
move-object v5, v9
.line 1040
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1041
goto :goto_115
.line 1022
.end local v8 # "stringLiteral":Ljava/lang/String;
:cond_ca
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v8
.line 1023
.restart local v8 # "stringLiteral":Ljava/lang/String;
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1025
sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v9
if-eqz v9, :cond_f3
.line 1026
new-instance v6, Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-direct {v6, v8}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
.line 1027
.local v6, "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-virtual {v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v9
if-eqz v9, :cond_ee
.line 1028
invoke-virtual {v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
move-result-object v9
invoke-virtual {v9}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v9
move-object v5, v9
goto :goto_ef
.line 1030
.end local v5 # "value":Ljava/lang/Object;
:cond_ee
move-object v5, v8
.line 1032
.restart local v5 # "value":Ljava/lang/Object;
:goto_ef
invoke-virtual {v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
.line 1033
.end local v6 # "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
goto :goto_115
.line 1034
.end local v5 # "value":Ljava/lang/Object;
:cond_f3
move-object v5, v8
.line 1037
.restart local v5 # "value":Ljava/lang/Object;
goto :goto_115
.line 1014
.end local v8 # "stringLiteral":Ljava/lang/String;
:cond_f5
sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v9
if-eqz v9, :cond_104
.line 1015
const/4 v9, 0x1
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v9
move-object v5, v9
goto :goto_109
.line 1017
.end local v5 # "value":Ljava/lang/Object;
:cond_104
const/4 v5, 0x0
invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v5
.line 1019
.restart local v5 # "value":Ljava/lang/Object;
:goto_109
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1020
goto :goto_115
.line 1010
.end local v5 # "value":Ljava/lang/Object;
:cond_10d
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v5
.line 1011
.restart local v5 # "value":Ljava/lang/Object;
invoke-interface {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1012
nop
.line 1073
:goto_115
invoke-interface {p1, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 1074
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
.line 1076
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v10, :cond_124
.line 1077
invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_124
.catchall {:try_start_7e .. :try_end_124} :catchall_128
.line 999
.end local v5 # "value":Ljava/lang/Object;
:cond_124
add-int/lit8 v4, v4, 0x1
goto/16 :goto_2f
.line 1082
.end local v4 # "i":I
:catchall_128
move-exception v1
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
throw v1
.line 990
.end local v3 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
:cond_12d
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "syntax error, expect [, actual "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ", pos "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_15a
:goto_159
throw v1
:goto_15a
goto :goto_159
.end method
.method public parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
.registers 18
.param p1, "types" # [Ljava/lang/reflect/Type;
.line 651
move-object/from16 v0, p0
move-object/from16 v1, p1
iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v2
const/16 v3, 0x8
const/4 v4, 0x0
const/16 v5, 0x10
if-ne v2, v3, :cond_17
.line 652
iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 653
return-object v4
.line 656
:cond_17
iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v2
const/16 v6, 0xe
if-ne v2, v6, :cond_1aa
.line 660
array-length v2, v1
new-array v2, v2, [Ljava/lang/Object;
.line 661
.local v2, "list":[Ljava/lang/Object;
array-length v7, v1
const-string/jumbo v8, "syntax error"
const/16 v9, 0xf
if-nez v7, :cond_48
.line 662
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 664
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v9, :cond_42
.line 668
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 669
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
return-object v3
.line 665
:cond_42
new-instance v3, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v3, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 672
:cond_48
iget-object v7, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/4 v10, 0x2
invoke-interface {v7, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 674
const/4 v7, 0x0
.local v7, "i":I
:goto_4f
array-length v11, v1
if-ge v7, v11, :cond_196
.line 677
iget-object v11, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v11
const-string/jumbo v12, "syntax error :"
if-ne v11, v3, :cond_65
.line 678
const/4 v11, 0x0
.line 679
.local v11, "value":Ljava/lang/Object;
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v13, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto/16 :goto_149
.line 681
.end local v11 # "value":Ljava/lang/Object;
:cond_65
aget-object v11, v1, v7
.line 682
.local v11, "type":Ljava/lang/reflect/Type;
sget-object v13, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-eq v11, v13, :cond_124
const-class v13, Ljava/lang/Integer;
if-ne v11, v13, :cond_71
goto/16 :goto_124
.line 690
:cond_71
const-class v13, Ljava/lang/String;
if-ne v11, v13, :cond_99
.line 691
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v13
const/4 v14, 0x4
if-ne v13, v14, :cond_8c
.line 692
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v13
.line 693
.local v13, "value":Ljava/lang/Object;
iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v14, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
move-object v11, v13
goto/16 :goto_149
.line 695
.end local v13 # "value":Ljava/lang/Object;
:cond_8c
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v13
.line 696
.restart local v13 # "value":Ljava/lang/Object;
iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v13, v11, v14}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v13
move-object v11, v13
goto/16 :goto_149
.line 699
.end local v13 # "value":Ljava/lang/Object;
:cond_99
const/4 v13, 0x0
.line 700
.local v13, "isArray":Z
const/4 v14, 0x0
.line 701
.local v14, "componentType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
array-length v15, v1
add-int/lit8 v15, v15, -0x1
if-ne v7, v15, :cond_af
.line 702
instance-of v15, v11, Ljava/lang/Class;
if-eqz v15, :cond_af
.line 703
move-object v15, v11
check-cast v15, Ljava/lang/Class;
.line 704
.local v15, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {v15}, Ljava/lang/Class;->isArray()Z
move-result v13
.line 705
invoke-virtual {v15}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v14
.line 710
.end local v15 # "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_af
if-eqz v13, :cond_117
iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v15
if-eq v15, v6, :cond_117
.line 711
new-instance v15, Ljava/util/ArrayList;
invoke-direct {v15}, Ljava/util/ArrayList;-><init>()V
.line 713
.local v15, "varList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v3, v14}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v3
.line 714
.local v3, "derializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v6
.line 716
.local v6, "fastMatch":I
iget-object v10, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-eq v10, v9, :cond_10e
.line 718
:goto_d0
invoke-interface {v3, v0, v11, v4}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v10
.line 719
.local v10, "item":Ljava/lang/Object;
invoke-interface {v15, v10}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 721
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v5, :cond_e6
.line 722
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 728
.end local v10 # "item":Ljava/lang/Object;
const/4 v4, 0x0
goto :goto_d0
.line 723
.restart local v10 # "item":Ljava/lang/Object;
:cond_e6
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v9, :cond_ef
.line 724
goto :goto_10e
.line 726
:cond_ef
new-instance v4, Lcom/alibaba/fastjson/JSONException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v8, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v8
invoke-static {v8}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v8
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v5}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v4
.line 731
.end local v10 # "item":Ljava/lang/Object;
:cond_10e
:goto_10e
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v15, v11, 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
.line 732
.end local v6 # "fastMatch":I
.end local v15 # "varList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
.local v3, "value":Ljava/lang/Object;
move-object v11, v3
const/4 v4, 0x0
goto :goto_149
.line 733
.end local v3 # "value":Ljava/lang/Object;
:cond_117
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v3, v11}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v3
.line 734
.local v3, "derializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
const/4 v4, 0x0
invoke-interface {v3, v0, v11, v4}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
move-object v11, v6
.local v6, "value":Ljava/lang/Object;
goto :goto_149
.line 683
.end local v3 # "derializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.end local v6 # "value":Ljava/lang/Object;
.end local v13 # "isArray":Z
.end local v14 # "componentType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_124
:goto_124
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
const/4 v6, 0x2
if-ne v3, v6, :cond_13e
.line 684
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->intValue()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
.line 685
.local v3, "value":Ljava/lang/Object;
iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
move-object v11, v3
goto :goto_149
.line 687
.end local v3 # "value":Ljava/lang/Object;
:cond_13e
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v3
.line 688
.restart local v3 # "value":Ljava/lang/Object;
iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v3, v11, v6}, 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
move-object v11, v3
.line 738
.end local v3 # "value":Ljava/lang/Object;
.local v11, "value":Ljava/lang/Object;
:goto_149
aput-object v11, v2, v7
.line 740
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v9, :cond_154
.line 741
goto :goto_196
.line 744
:cond_154
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v5, :cond_177
.line 748
array-length v3, v1
add-int/lit8 v3, v3, -0x1
if-ne v7, v3, :cond_168
.line 749
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
const/4 v6, 0x2
goto :goto_16e
.line 751
:cond_168
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/4 v6, 0x2
invoke-interface {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 674
.end local v11 # "value":Ljava/lang/Object;
:goto_16e
add-int/lit8 v7, v7, 0x1
const/16 v3, 0x8
const/16 v6, 0xe
const/4 v10, 0x2
goto/16 :goto_4f
.line 745
.restart local v11 # "value":Ljava/lang/Object;
:cond_177
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v5
invoke-static {v5}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 755
.end local v7 # "i":I
.end local v11 # "value":Ljava/lang/Object;
:cond_196
:goto_196
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v9, :cond_1a4
.line 759
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 761
return-object v2
.line 756
:cond_1a4
new-instance v3, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v3, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 657
.end local v2 # "list":[Ljava/lang/Object;
:cond_1aa
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "syntax error : "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_1c9
:goto_1c8
throw v2
:goto_1c9
goto :goto_1c8
.end method
.method public parseArrayWithType(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 9
.param p1, "collectionType" # Ljava/lang/reflect/Type;
.line 847
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x8
if-ne v0, v1, :cond_11
.line 848
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 849
const/4 v0, 0x0
return-object v0
.line 852
:cond_11
move-object v0, p1
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
.line 854
.local v0, "actualTypes":[Ljava/lang/reflect/Type;
array-length v1, v0
const/4 v2, 0x1
if-ne v1, v2, :cond_d1
.line 858
const/4 v1, 0x0
aget-object v3, v0, v1
.line 860
.local v3, "actualTypeArgument":Ljava/lang/reflect/Type;
instance-of v4, v3, Ljava/lang/Class;
if-eqz v4, :cond_2f
.line 861
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 862
.local v1, "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
move-object v2, v3
check-cast v2, Ljava/lang/Class;
invoke-virtual {p0, v2, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.line 863
return-object v1
.line 866
.end local v1 # "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
:cond_2f
instance-of v4, v3, Ljava/lang/reflect/WildcardType;
if-eqz v4, :cond_73
.line 867
move-object v2, v3
check-cast v2, Ljava/lang/reflect/WildcardType;
.line 870
.local v2, "wildcardType":Ljava/lang/reflect/WildcardType;
invoke-interface {v2}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v4
aget-object v1, v4, v1
.line 873
.local v1, "upperBoundType":Ljava/lang/reflect/Type;
const-class v4, Ljava/lang/Object;
invoke-virtual {v4, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_67
.line 874
invoke-interface {v2}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v4
array-length v4, v4
if-nez v4, :cond_50
.line 876
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v4
return-object v4
.line 878
:cond_50
new-instance v4, Lcom/alibaba/fastjson/JSONException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "not support type : "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v5}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v4
.line 882
:cond_67
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
.line 883
.local v4, "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
move-object v5, v1
check-cast v5, Ljava/lang/Class;
invoke-virtual {p0, v5, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.line 884
return-object v4
.line 890
.end local v1 # "upperBoundType":Ljava/lang/reflect/Type;
.end local v2 # "wildcardType":Ljava/lang/reflect/WildcardType;
.end local v4 # "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
:cond_73
instance-of v4, v3, Ljava/lang/reflect/TypeVariable;
if-eqz v4, :cond_aa
.line 891
move-object v4, v3
check-cast v4, Ljava/lang/reflect/TypeVariable;
.line 892
.local v4, "typeVariable":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;"
invoke-interface {v4}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object v5
.line 894
.local v5, "bounds":[Ljava/lang/reflect/Type;
array-length v6, v5
if-ne v6, v2, :cond_93
.line 898
aget-object v1, v5, v1
.line 899
.local v1, "boundType":Ljava/lang/reflect/Type;
instance-of v2, v1, Ljava/lang/Class;
if-eqz v2, :cond_aa
.line 900
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 901
.local v2, "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
move-object v6, v1
check-cast v6, Ljava/lang/Class;
invoke-virtual {p0, v6, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.line 902
return-object v2
.line 895
.end local v1 # "boundType":Ljava/lang/reflect/Type;
.end local v2 # "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
:cond_93
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "not support : "
invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 906
.end local v4 # "typeVariable":Ljava/lang/reflect/TypeVariable;, "Ljava/lang/reflect/TypeVariable<*>;"
.end local v5 # "bounds":[Ljava/lang/reflect/Type;
:cond_aa
instance-of v1, v3, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_ba
.line 907
move-object v1, v3
check-cast v1, Ljava/lang/reflect/ParameterizedType;
.line 909
.local v1, "parameterizedType":Ljava/lang/reflect/ParameterizedType;
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 910
.restart local v2 # "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
invoke-virtual {p0, v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
.line 911
return-object v2
.line 914
.end local v1 # "parameterizedType":Ljava/lang/reflect/ParameterizedType;
.end local v2 # "array":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Object;>;"
:cond_ba
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "TODO : "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 855
.end local v3 # "actualTypeArgument":Ljava/lang/reflect/Type;
:cond_d1
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not support type "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public parseKey()Ljava/lang/Object;
.registers 4
.line 1175
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x12
if-ne v0, v1, :cond_18
.line 1176
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
.line 1177
.local v0, "value":Ljava/lang/String;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/16 v2, 0x10
invoke-interface {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 1178
return-object v0
.line 1180
.end local v0 # "value":Ljava/lang/String;
:cond_18
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parseObject()Lcom/alibaba/fastjson/JSONObject;
.registers 2
.line 971
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 972
.local v0, "object":Lcom/alibaba/fastjson/JSONObject;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;)Ljava/lang/Object;
.line 973
return-object v0
.end method
.method public parseObject(Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 520
.local p1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 6
.param p1, "type" # Ljava/lang/reflect/Type;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.line 525
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/4 v1, 0x0
const/16 v2, 0x8
if-ne v0, v2, :cond_11
.line 526
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 527
return-object v1
.line 530
:cond_11
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/4 v2, 0x4
if-ne v0, v2, :cond_42
.line 531
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->unwrap(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
.line 532
const-class v0, [B
if-ne p1, v0, :cond_2e
.line 533
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->bytesValue()[B
move-result-object v0
.line 534
.local v0, "bytes":[B
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 535
return-object v0
.line 538
.end local v0 # "bytes":[B
:cond_2e
const-class v0, [C
if-ne p1, v0, :cond_42
.line 539
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
.line 540
.local v0, "strVal":Ljava/lang/String;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 541
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v1
return-object v1
.line 545
.end local v0 # "strVal":Ljava/lang/String;
:cond_42
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
.line 548
.local v0, "derializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
:try_start_48
invoke-interface {v0, p0, p1, v1}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
:try_end_4c
.catch Lcom/alibaba/fastjson/JSONException; {:try_start_48 .. :try_end_4c} :catch_58
.catchall {:try_start_48 .. :try_end_4c} :catchall_4d
return-object v1
.line 551
:catchall_4d
move-exception v1
.line 552
.local v1, "e":Ljava/lang/Throwable;
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-virtual {v1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.line 549
.end local v1 # "e":Ljava/lang/Throwable;
:catch_58
move-exception v1
.line 550
.local v1, "e":Lcom/alibaba/fastjson/JSONException;
throw v1
.end method
.method public parseObject(Ljava/util/Map;)Ljava/lang/Object;
.registers 3
.param p1, "object" # Ljava/util/Map;
.line 967
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public final parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
.registers 20
.param p1, "object" # Ljava/util/Map;
.param p2, "fieldName" # Ljava/lang/Object;
.line 191
move-object/from16 v1, p0
move-object/from16 v2, p1
move-object/from16 v3, p2
iget-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.line 193
.local v4, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v5, 0x8
if-ne v0, v5, :cond_15
.line 194
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 195
const/4 v0, 0x0
return-object v0
.line 198
:cond_15
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
const/16 v5, 0xc
const/16 v6, 0x10
if-eq v0, v5, :cond_42
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v0
if-ne v0, v6, :cond_26
goto :goto_42
.line 199
:cond_26
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v6, "syntax error, expect {, actual "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 202
:cond_42
:goto_42
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v5
.line 204
.local v5, "context":Lcom/alibaba/fastjson/parser/ParseContext;
const/4 v0, 0x0
move v7, v0
.line 206
.local v7, "setContextFlag":Z
:goto_48
:try_start_48
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 207
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v0
.line 208
.local v0, "ch":C
sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {v1, v8}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v8
const/16 v9, 0x2c
if-eqz v8, :cond_67
.line 209
:goto_59
if-ne v0, v9, :cond_67
.line 210
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 211
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 212
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v8
:try_end_65
.catchall {:try_start_48 .. :try_end_65} :catchall_4cd
move v0, v8
goto :goto_59
.line 216
:cond_67
const/4 v8, 0x0
.line 218
.local v8, "isObjectKey":Z
const/16 v15, 0x7d
const-string v10, ", name "
const-string v11, "expect \':\' at "
const/16 v6, 0x3a
const/16 v13, 0x22
const-string/jumbo v12, "syntax error"
if-ne v0, v13, :cond_a9
.line 219
:try_start_77
iget-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-interface {v4, v14, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v14
.line 220
.local v14, "key":Ljava/lang/Object;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 221
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v16
move/from16 v0, v16
.line 222
if-ne v0, v6, :cond_8a
goto/16 :goto_19a
.line 223
:cond_8a
new-instance v6, Lcom/alibaba/fastjson/JSONException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v11
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v6, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 225
.end local v14 # "key":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_a9
if-ne v0, v15, :cond_b9
.line 226
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 227
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
.line 228
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:try_end_b4
.catchall {:try_start_77 .. :try_end_b4} :catchall_4cd
.line 229
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v2
.line 230
:cond_b9
const/16 v14, 0x27
if-ne v0, v14, :cond_f6
.line 231
:try_start_bd
sget-object v15, Lcom/alibaba/fastjson/parser/Feature;->AllowSingleQuotes:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {v1, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v15
if-eqz v15, :cond_f0
.line 235
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-interface {v4, v15, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v14
.line 236
.restart local v14 # "key":Ljava/lang/Object;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 237
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v15
move v0, v15
.line 238
if-ne v0, v6, :cond_d7
goto/16 :goto_19a
.line 239
:cond_d7
new-instance v6, Lcom/alibaba/fastjson/JSONException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v10
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v6, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 232
.end local v14 # "key":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_f0
new-instance v6, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v6, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 241
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_f6
const/16 v14, 0x1a
if-eq v0, v14, :cond_4c7
.line 243
if-eq v0, v9, :cond_4c1
.line 245
const/16 v14, 0x30
if-lt v0, v14, :cond_104
const/16 v14, 0x39
if-le v0, v14, :cond_108
:cond_104
const/16 v14, 0x2d
if-ne v0, v14, :cond_148
.line 246
:cond_108
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
.line 247
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
.line 248
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v14
const/4 v15, 0x2
if-ne v14, v15, :cond_11a
.line 249
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v14
.restart local v14 # "key":Ljava/lang/Object;
goto :goto_120
.line 251
.end local v14 # "key":Ljava/lang/Object;
:cond_11a
const/4 v14, 0x1
invoke-interface {v4, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v15
move-object v14, v15
.line 253
.restart local v14 # "key":Ljava/lang/Object;
:goto_120
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v15
move v0, v15
.line 254
if-ne v0, v6, :cond_129
goto/16 :goto_19a
.line 255
:cond_129
new-instance v6, Lcom/alibaba/fastjson/JSONException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v11
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v6, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 257
.end local v14 # "key":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_148
const/16 v14, 0x7b
if-eq v0, v14, :cond_191
const/16 v14, 0x5b
if-ne v0, v14, :cond_151
goto :goto_191
.line 262
:cond_151
sget-object v14, Lcom/alibaba/fastjson/parser/Feature;->AllowUnQuotedFieldNames:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {v1, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v14
if-eqz v14, :cond_18b
.line 266
iget-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-interface {v4, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v14
.line 267
.restart local v14 # "key":Ljava/lang/Object;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 268
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v15
move v0, v15
.line 269
if-ne v0, v6, :cond_16a
goto :goto_19a
.line 270
:cond_16a
new-instance v6, Lcom/alibaba/fastjson/JSONException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v9, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v10
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v10, ", actual "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v6, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 263
.end local v14 # "key":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_18b
new-instance v6, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v6, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 258
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_191
:goto_191
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 259
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v6
move-object v14, v6
.line 260
.restart local v14 # "key":Ljava/lang/Object;
const/4 v8, 0x1
.line 274
:goto_19a
if-nez v8, :cond_1a2
.line 275
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 276
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 279
:cond_1a2
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v6
.line 281
.end local v0 # "ch":C
.local v6, "ch":C
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
.line 283
sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
const/16 v11, 0xd
if-ne v14, v0, :cond_224
.line 284
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-interface {v4, v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v0
move-object v9, v0
.line 285
.local v9, "typeName":Ljava/lang/String;
invoke-static {v9}, Lcom/alibaba/fastjson/util/TypeUtils;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
move-object v10, v0
.line 287
.local v10, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
if-nez v10, :cond_1c6
.line 288
sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
invoke-interface {v2, v0, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 289
const/16 v6, 0x10
goto/16 :goto_48
.line 292
:cond_1c6
const/16 v0, 0x10
invoke-interface {v4, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 293
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v12
if-ne v12, v11, :cond_207
.line 294
invoke-interface {v4, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_1d4
.catchall {:try_start_bd .. :try_end_1d4} :catchall_4cd
.line 296
const/4 v0, 0x0
.line 297
.local v0, "instance":Ljava/lang/Object;
:try_start_1d5
iget-object v11, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v11, v10}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v11
.line 298
.local v11, "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
instance-of v12, v11, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
if-eqz v12, :cond_1e7
.line 299
move-object v12, v11
check-cast v12, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
invoke-virtual {v12, v1, v10}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;->createInstance(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v12
move-object v0, v12
.line 302
:cond_1e7
if-nez v0, :cond_1f9
.line 303
const-class v12, Ljava/lang/Cloneable;
if-ne v10, v12, :cond_1f4
.line 304
new-instance v12, Ljava/util/HashMap;
invoke-direct {v12}, Ljava/util/HashMap;-><init>()V
move-object v0, v12
goto :goto_1f9
.line 306
:cond_1f4
invoke-virtual {v10}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v12
:try_end_1f8
.catch Ljava/lang/Exception; {:try_start_1d5 .. :try_end_1f8} :catch_1fe
.catchall {:try_start_1d5 .. :try_end_1f8} :catchall_4cd
move-object v0, v12
.line 310
:cond_1f9
:goto_1f9
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v0
.line 311
.end local v0 # "instance":Ljava/lang/Object;
.end local v11 # "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
:catch_1fe
move-exception v0
.line 312
.local v0, "e":Ljava/lang/Exception;
:try_start_1ff
new-instance v11, Lcom/alibaba/fastjson/JSONException;
const-string v12, "create instance error"
invoke-direct {v11, v12, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v11
.line 316
.end local v0 # "e":Ljava/lang/Exception;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_207
const/4 v0, 0x2
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 318
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
if-eqz v0, :cond_216
instance-of v0, v3, Ljava/lang/Integer;
if-nez v0, :cond_216
.line 319
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V
.line 322
:cond_216
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
.line 323
.local v0, "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
invoke-interface {v0, v1, v10, v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v11
:try_end_220
.catchall {:try_start_1ff .. :try_end_220} :catchall_4cd
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v11
.line 326
.end local v0 # "deserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.end local v9 # "typeName":Ljava/lang/String;
.end local v10 # "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_224
:try_start_224
const-string v0, "$ref"
if-ne v14, v0, :cond_2ff
.line 327
const/4 v0, 0x4
invoke-interface {v4, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 328
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v0, :cond_2e0
.line 329
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
.line 330
.local v0, "ref":Ljava/lang/String;
invoke-interface {v4, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 332
const/4 v9, 0x0
.line 333
.local v9, "refValue":Ljava/lang/Object;
const-string v10, "@"
invoke-virtual {v10, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_26b
.line 334
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v10
if-eqz v10, :cond_2ca
.line 335
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v10
.line 336
.local v10, "thisContext":Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v13
.line 337
.local v13, "thisObj":Ljava/lang/Object;
instance-of v15, v13, [Ljava/lang/Object;
if-nez v15, :cond_269
instance-of v15, v13, Ljava/util/Collection;
if-eqz v15, :cond_259
goto :goto_269
.line 339
:cond_259
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v15
if-eqz v15, :cond_26a
.line 340
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v15
invoke-virtual {v15}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v15
move-object v9, v15
goto :goto_26a
.line 338
:cond_269
:goto_269
move-object v9, v13
.line 342
.end local v10 # "thisContext":Lcom/alibaba/fastjson/parser/ParseContext;
.end local v13 # "thisObj":Ljava/lang/Object;
:cond_26a
:goto_26a
goto :goto_2ca
.line 343
:cond_26b
const-string v10, ".."
invoke-virtual {v10, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_290
.line 344
invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v10
.line 345
.local v10, "parentContext":Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v13
if-eqz v13, :cond_283
.line 346
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v13
move-object v9, v13
goto :goto_28f
.line 348
:cond_283
new-instance v13, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v13, v10, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
.line 349
const/4 v13, 0x1
invoke-virtual {v1, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 351
.end local v10 # "parentContext":Lcom/alibaba/fastjson/parser/ParseContext;
:goto_28f
goto :goto_2ca
:cond_290
const-string v10, "$"
invoke-virtual {v10, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_2be
.line 352
move-object v10, v5
.line 353
.local v10, "rootContext":Lcom/alibaba/fastjson/parser/ParseContext;
:goto_299
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v13
if-eqz v13, :cond_2a5
.line 354
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v13
move-object v10, v13
goto :goto_299
.line 357
:cond_2a5
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v13
if-eqz v13, :cond_2b1
.line 358
invoke-virtual {v10}, Lcom/alibaba/fastjson/parser/ParseContext;->getObject()Ljava/lang/Object;
move-result-object v13
move-object v9, v13
goto :goto_2bd
.line 360
:cond_2b1
new-instance v13, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v13, v10, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
.line 361
const/4 v13, 0x1
invoke-virtual {v1, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 363
.end local v10 # "rootContext":Lcom/alibaba/fastjson/parser/ParseContext;
:goto_2bd
goto :goto_2ca
.line 364
:cond_2be
new-instance v10, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v10, v5, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v10}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
.line 365
const/4 v15, 0x1
invoke-virtual {v1, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
.line 368
:cond_2ca
:goto_2ca
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v11, :cond_2da
.line 371
const/16 v10, 0x10
invoke-interface {v4, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_2d5
.catchall {:try_start_224 .. :try_end_2d5} :catchall_4cd
.line 373
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v9
.line 369
:cond_2da
:try_start_2da
new-instance v10, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v10, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v10
.line 375
.end local v0 # "ref":Ljava/lang/String;
.end local v9 # "refValue":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_2e0
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "illegal ref, "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
invoke-static {v10}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v0, v9}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v0
.line 379
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_2ff
const/4 v15, 0x1
if-nez v7, :cond_307
.line 380
invoke-virtual/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 381
const/4 v0, 0x1
move v7, v0
.line 384
:cond_307
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-class v15, Lcom/alibaba/fastjson/JSONObject;
if-ne v0, v15, :cond_319
.line 385
if-nez v14, :cond_314
const-string v0, "null"
goto :goto_318
:cond_314
invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
:try_end_318
.catchall {:try_start_2da .. :try_end_318} :catchall_4cd
:goto_318
move-object v14, v0
.line 389
:cond_319
const-string/jumbo v0, "syntax error, position at "
if-ne v6, v13, :cond_34a
.line 390
:try_start_31e
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
.line 391
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v11
.line 392
.local v11, "strValue":Ljava/lang/String;
move-object v12, v11
.line 394
.local v12, "value":Ljava/lang/Object;
sget-object v13, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
invoke-interface {v4, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v13
if-eqz v13, :cond_345
.line 395
new-instance v13, Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-direct {v13, v11}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
.line 396
.local v13, "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
invoke-virtual {v13}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v15
if-eqz v15, :cond_342
.line 397
invoke-virtual {v13}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
move-result-object v15
invoke-virtual {v15}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v15
move-object v12, v15
.line 399
:cond_342
invoke-virtual {v13}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
.line 402
.end local v13 # "iso8601Lexer":Lcom/alibaba/fastjson/parser/JSONScanner;
:cond_345
invoke-interface {v2, v14, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 403
nop
.end local v11 # "strValue":Ljava/lang/String;
goto :goto_374
.end local v12 # "value":Ljava/lang/Object;
:cond_34a
const/16 v13, 0x30
if-lt v6, v13, :cond_352
const/16 v13, 0x39
if-le v6, v13, :cond_356
:cond_352
const/16 v13, 0x2d
if-ne v6, v13, :cond_3b9
.line 404
:cond_356
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
.line 405
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v11
const/4 v12, 0x2
if-ne v11, v12, :cond_366
.line 406
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v11
move-object v12, v11
.local v11, "value":Ljava/lang/Object;
goto :goto_371
.line 408
.end local v11 # "value":Ljava/lang/Object;
:cond_366
sget-object v11, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {v1, v11}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v11
invoke-interface {v4, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v11
move-object v12, v11
.line 411
.restart local v12 # "value":Ljava/lang/Object;
:goto_371
invoke-interface {v2, v14, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 485
:goto_374
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 486
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
move-result v11
move v6, v11
.line 487
if-ne v6, v9, :cond_385
.line 488
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 489
const/16 v12, 0x10
goto/16 :goto_49e
.line 490
:cond_385
const/16 v9, 0x7d
if-ne v6, v9, :cond_39a
.line 491
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 492
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
.line 493
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 495
invoke-virtual/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
:try_end_395
.catchall {:try_start_31e .. :try_end_395} :catchall_4cd
.line 497
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v2
.line 499
:cond_39a
:try_start_39a
new-instance v9, Lcom/alibaba/fastjson/JSONException;
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v0
invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v11, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v9, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v9
.line 412
.end local v12 # "value":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_3b9
const/16 v9, 0x5b
if-ne v6, v9, :cond_3ec
.line 413
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 414
new-instance v0, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
.line 415
.local v0, "list":Lcom/alibaba/fastjson/JSONArray;
invoke-virtual {v1, v0, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 416
move-object v9, v0
.line 417
.local v9, "value":Ljava/lang/Object;
invoke-interface {v2, v14, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 419
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v11, :cond_3da
.line 420
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:try_end_3d5
.catchall {:try_start_39a .. :try_end_3d5} :catchall_4cd
.line 421
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v2
.line 422
:cond_3da
:try_start_3da
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
const/16 v11, 0x10
if-ne v10, v11, :cond_3e6
.line 423
const/16 v12, 0x10
goto/16 :goto_49e
.line 425
:cond_3e6
new-instance v10, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v10, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v10
.line 427
.end local v0 # "list":Lcom/alibaba/fastjson/JSONArray;
.end local v9 # "value":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_3ec
const/16 v9, 0x7b
if-ne v6, v9, :cond_470
.line 428
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 430
if-eqz v3, :cond_3ff
invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-class v9, Ljava/lang/Integer;
if-ne v0, v9, :cond_3ff
const/4 v12, 0x1
goto :goto_400
:cond_3ff
const/4 v12, 0x0
:goto_400
move v0, v12
.line 432
.local v0, "parentIsArray":Z
new-instance v9, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v9}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 433
.local v9, "input":Lcom/alibaba/fastjson/JSONObject;
const/4 v10, 0x0
.line 435
.local v10, "ctxLocal":Lcom/alibaba/fastjson/parser/ParseContext;
if-nez v0, :cond_40e
.line 436
invoke-virtual {v1, v5, v9, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v12
move-object v10, v12
.line 439
:cond_40e
invoke-virtual {v1, v9, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v12
.line 440
.local v12, "obj":Ljava/lang/Object;
if-eqz v10, :cond_419
if-eq v9, v12, :cond_419
.line 441
invoke-virtual {v10, v2}, Lcom/alibaba/fastjson/parser/ParseContext;->setObject(Ljava/lang/Object;)V
.line 444
:cond_419
invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v13
invoke-virtual {v1, v2, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkMapResolve(Ljava/util/Map;Ljava/lang/String;)V
.line 446
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v13
const-class v15, Lcom/alibaba/fastjson/JSONObject;
if-ne v13, v15, :cond_430
.line 447
invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v2, v13, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_433
.line 449
:cond_430
invoke-interface {v2, v14, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 452
:goto_433
if-eqz v0, :cond_438
.line 453
invoke-virtual {v1, v5, v12, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 456
:cond_438
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v13
if-ne v13, v11, :cond_449
.line 457
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 459
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
:try_end_444
.catchall {:try_start_3da .. :try_end_444} :catchall_4cd
.line 460
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v2
.line 461
:cond_449
:try_start_449
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v11
const/16 v13, 0x10
if-ne v11, v13, :cond_454
.line 462
const/16 v12, 0x10
goto :goto_49e
.line 464
:cond_454
new-instance v11, Lcom/alibaba/fastjson/JSONException;
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v15, "syntax error, "
invoke-virtual {v13, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v15
invoke-virtual {v13, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-direct {v11, v13}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v11
.line 467
.end local v0 # "parentIsArray":Z
.end local v9 # "input":Lcom/alibaba/fastjson/JSONObject;
.end local v10 # "ctxLocal":Lcom/alibaba/fastjson/parser/ParseContext;
.end local v12 # "obj":Ljava/lang/Object;
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_470
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 468
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v9
.line 470
.local v9, "value":Ljava/lang/Object;
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v12
const-class v13, Lcom/alibaba/fastjson/JSONObject;
if-ne v12, v13, :cond_484
.line 471
invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v12
move-object v14, v12
.line 473
:cond_484
invoke-interface {v2, v14, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 475
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v12
if-ne v12, v11, :cond_495
.line 476
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:try_end_490
.catchall {:try_start_449 .. :try_end_490} :catchall_4cd
.line 477
nop
.line 504
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
return-object v2
.line 478
:cond_495
:try_start_495
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v11
const/16 v12, 0x10
if-ne v11, v12, :cond_4a2
.line 479
nop
.line 206
.end local v6 # "ch":C
.end local v8 # "isObjectKey":Z
.end local v9 # "value":Ljava/lang/Object;
.end local v14 # "key":Ljava/lang/Object;
:goto_49e
const/16 v6, 0x10
goto/16 :goto_48
.line 481
.restart local v6 # "ch":C
.restart local v8 # "isObjectKey":Z
.restart local v9 # "value":Ljava/lang/Object;
.restart local v14 # "key":Ljava/lang/Object;
:cond_4a2
new-instance v11, Lcom/alibaba/fastjson/JSONException;
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
move-result v0
invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v11, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v11
.line 244
.end local v6 # "ch":C
.end local v9 # "value":Ljava/lang/Object;
.end local v14 # "key":Ljava/lang/Object;
.local v0, "ch":C
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_4c1
new-instance v6, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v6, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
.line 242
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:cond_4c7
new-instance v6, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v6, v12}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
.end local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.end local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.end local p1 # "object":Ljava/util/Map;
.end local p2 # "fieldName":Ljava/lang/Object;
throw v6
:try_end_4cd
.catchall {:try_start_495 .. :try_end_4cd} :catchall_4cd
.line 504
.end local v0 # "ch":C
.end local v7 # "setContextFlag":Z
.end local v8 # "isObjectKey":Z
.restart local v4 # "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
.restart local v5 # "context":Lcom/alibaba/fastjson/parser/ParseContext;
.restart local p1 # "object":Ljava/util/Map;
.restart local p2 # "fieldName":Ljava/lang/Object;
:catchall_4cd
move-exception v0
invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
goto :goto_4d3
:goto_4d2
throw v0
:goto_4d3
goto :goto_4d2
.end method
.method public parseObject(Ljava/lang/Object;)V
.registers 14
.param p1, "object" # Ljava/lang/Object;
.line 765
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 766
.local v0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->getFieldDeserializers(Ljava/lang/Class;)Ljava/util/Map;
move-result-object v1
.line 768
.local v1, "setters":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;>;"
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v2
const/16 v3, 0x10
const/16 v4, 0xc
if-eq v2, v4, :cond_3d
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v3, :cond_1f
goto :goto_3d
.line 769
:cond_1f
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "syntax error, expect {, actual "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 774
:cond_3d
:goto_3d
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v2
.line 776
.local v2, "key":Ljava/lang/String;
const/16 v4, 0xd
if-nez v2, :cond_69
.line 777
iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v5
if-ne v5, v4, :cond_58
.line 778
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 779
nop
.line 844
.end local v2 # "key":Ljava/lang/String;
return-void
.line 781
.restart local v2 # "key":Ljava/lang/String;
:cond_58
iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v5
if-ne v5, v3, :cond_69
.line 782
sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v5
if-eqz v5, :cond_69
.line 783
goto :goto_3d
.line 788
:cond_69
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.line 789
.local v5, "fieldDeser":Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
if-nez v5, :cond_9c
if-eqz v2, :cond_9c
.line 790
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v6
invoke-interface {v6}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v6
.local v6, "i$":Ljava/util/Iterator;
:goto_7b
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_9c
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/util/Map$Entry;
.line 791
.local v7, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;>;"
invoke-interface {v7}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/lang/String;
invoke-virtual {v2, v8}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_9b
.line 792
invoke-interface {v7}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v8
move-object v5, v8
check-cast v5, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.line 793
goto :goto_9c
.end local v7 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;>;"
:cond_9b
goto :goto_7b
.line 798
.end local v6 # "i$":Ljava/util/Iterator;
:cond_9c
:goto_9c
if-nez v5, :cond_e0
.line 799
sget-object v6, Lcom/alibaba/fastjson/parser/Feature;->IgnoreNotMatch:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_bc
.line 803
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon()V
.line 804
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
.line 806
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v4, :cond_3d
.line 807
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 808
return-void
.line 800
:cond_bc
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v6, "setter not found, class "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v6, ", property "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 813
:cond_e0
invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->getFieldClass()Ljava/lang/Class;
move-result-object v6
.line 814
.local v6, "fieldClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->getFieldType()Ljava/lang/reflect/Type;
move-result-object v7
.line 816
.local v7, "fieldType":Ljava/lang/reflect/Type;
sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v9, 0x2
const/4 v10, 0x0
if-ne v6, v8, :cond_fa
.line 817
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v8, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
.line 818
sget-object v8, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v8, p0, v7, v10}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
.local v8, "fieldValue":Ljava/lang/Object;
goto :goto_12d
.line 819
.end local v8 # "fieldValue":Ljava/lang/Object;
:cond_fa
const-class v8, Ljava/lang/String;
if-ne v6, v8, :cond_109
.line 820
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/4 v9, 0x4
invoke-interface {v8, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
.line 821
invoke-static {p0}, Lcom/alibaba/fastjson/serializer/StringCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;)Ljava/lang/Object;
move-result-object v8
.restart local v8 # "fieldValue":Ljava/lang/Object;
goto :goto_12d
.line 822
.end local v8 # "fieldValue":Ljava/lang/Object;
:cond_109
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne v6, v8, :cond_119
.line 823
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v8, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
.line 824
sget-object v8, Lcom/alibaba/fastjson/serializer/LongCodec;->instance:Lcom/alibaba/fastjson/serializer/LongCodec;
invoke-virtual {v8, p0, v7, v10}, Lcom/alibaba/fastjson/serializer/LongCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
.restart local v8 # "fieldValue":Ljava/lang/Object;
goto :goto_12d
.line 826
.end local v8 # "fieldValue":Ljava/lang/Object;
:cond_119
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v8, v6, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v8
.line 828
.local v8, "fieldValueDeserializer":Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v8}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v11
invoke-interface {v9, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
.line 829
invoke-interface {v8, p0, v7, v10}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v9
move-object v8, v9
.line 832
.local v8, "fieldValue":Ljava/lang/Object;
:goto_12d
invoke-virtual {v5, p1, v8}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
.line 835
.end local v6 # "fieldClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.end local v7 # "fieldType":Ljava/lang/reflect/Type;
.end local v8 # "fieldValue":Ljava/lang/Object;
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v3, :cond_13a
.line 836
goto/16 :goto_3d
.line 839
:cond_13a
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v4, :cond_148
.line 840
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v4, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 841
return-void
.line 843
.end local v2 # "key":Ljava/lang/String;
.end local v5 # "fieldDeser":Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
:cond_148
goto/16 :goto_3d
.end method
.method public popContext()V
.registers 5
.line 1131
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_9
.line 1132
return-void
.line 1135
:cond_9
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/ParseContext;->getParentContext()Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
.line 1136
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
iget v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
add-int/lit8 v2, v1, -0x1
const/4 v3, 0x0
aput-object v3, v0, v2
.line 1137
add-int/lit8 v1, v1, -0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
.line 1138
return-void
.end method
.method public setConfig(Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 2
.param p1, "config" # Lcom/alibaba/fastjson/parser/ParserConfig;
.line 514
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
.line 515
return-void
.end method
.method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.registers 5
.param p1, "parent" # Lcom/alibaba/fastjson/parser/ParseContext;
.param p2, "object" # Ljava/lang/Object;
.param p3, "fieldName" # Ljava/lang/Object;
.line 1149
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_a
.line 1150
const/4 v0, 0x0
return-object v0
.line 1153
:cond_a
new-instance v0, Lcom/alibaba/fastjson/parser/ParseContext;
invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/ParseContext;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
.line 1154
invoke-direct {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 1156
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
return-object v0
.end method
.method public setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.registers 4
.param p1, "object" # Ljava/lang/Object;
.param p2, "fieldName" # Ljava/lang/Object;
.line 1141
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_a
.line 1142
const/4 v0, 0x0
return-object v0
.line 1145
:cond_a
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {p0, v0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v0
return-object v0
.end method
.method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.registers 3
.param p1, "context" # Lcom/alibaba/fastjson/parser/ParseContext;
.line 1124
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_9
.line 1125
return-void
.line 1127
:cond_9
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
.line 1128
return-void
.end method
.method public setDateFomrat(Ljava/text/DateFormat;)V
.registers 2
.param p1, "dateFormat" # Ljava/text/DateFormat;
.line 142
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
.line 143
return-void
.end method
.method public setDateFormat(Ljava/lang/String;)V
.registers 3
.param p1, "dateFormat" # Ljava/lang/String;
.line 137
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
.line 138
const/4 v0, 0x0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
.line 139
return-void
.end method
.method public setResolveStatus(I)V
.registers 2
.param p1, "resolveStatus" # I
.line 922
iput p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
.line 923
return-void
.end method