.class public Lcom/alibaba/fastjson/parser/DefaultJSONParser; .super Ljava/lang/Object; .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 # instance fields .field public config:Lcom/alibaba/fastjson/parser/ParserConfig; .field protected contex: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 protected extraProcessors:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;", ">;" } .end annotation .end field .field protected extraTypeProviders:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;", ">;" } .end annotation .end field .field public fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver; .field public final lexer:Lcom/alibaba/fastjson/parser/JSONLexer; .field public 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 public final symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; # direct methods .method public constructor (Lcom/alibaba/fastjson/parser/JSONLexer;)V .registers 3 .line 134 sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V return-void .end method .method public constructor (Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V .registers 5 .line 137 invoke-direct {p0}, Ljava/lang/Object;->()V .line 74 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; const/4 v0, 0x0 .line 82 iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I .line 90 iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I const/4 v0, 0x0 .line 92 iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List; .line 93 iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List; .line 94 iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver; .line 138 iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; .line 139 iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; .line 140 iget-object p2, p2, Lcom/alibaba/fastjson/parser/ParserConfig;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; .line 142 iget-char p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v0, 0x7b const/16 v1, 0x1a if-ne p2, v0, :cond_3b .line 143 iget p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 144 iget v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p2, v0, :cond_2e goto :goto_34 :cond_2e iget-object v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 146 invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_34 iput-char v1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 p2, 0xc .line 147 iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_5c .line 148 :cond_3b iget-char p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v0, 0x5b if-ne p2, v0, :cond_59 .line 149 iget p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 150 iget v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p2, v0, :cond_4c goto :goto_52 :cond_4c iget-object v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 152 invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_52 iput-char v1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 p2, 0xe .line 153 iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_5c .line 155 :cond_59 invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :goto_5c return-void .end method .method public constructor (Ljava/lang/String;)V .registers 4 .line 118 sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig; sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V return-void .end method .method public constructor (Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;)V .registers 5 .line 122 new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer; sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {v0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;I)V invoke-direct {p0, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V return-void .end method .method public constructor (Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V .registers 5 .line 126 new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer; invoke-direct {v0, p1, p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;I)V invoke-direct {p0, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V return-void .end method .method public constructor ([CILcom/alibaba/fastjson/parser/ParserConfig;I)V .registers 6 .line 130 new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer; invoke-direct {v0, p1, p2, p4}, Lcom/alibaba/fastjson/parser/JSONLexer;->([CII)V invoke-direct {p0, v0, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V return-void .end method # virtual methods .method public final accept(I)V .registers 5 .line 1452 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v0, p1, :cond_c .line 1453 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-void .line 1455 :cond_c new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "syntax error, expect " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string v1, ", actual " invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 1456 invoke-static {v1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method protected addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V .registers 4 .line 1303 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List; if-nez v0, :cond_c .line 1304 new-instance v0, Ljava/util/ArrayList; const/4 v1, 0x2 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List; .line 1306 :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 return-void .end method .method protected checkListResolve(Ljava/util/Collection;)V .registers 6 .line 1056 instance-of v0, p1, Ljava/util/List; const/4 v1, 0x0 if-eqz v0, :cond_20 .line 1057 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; move-result-object v0 .line 1058 new-instance v2, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer; move-object v3, p1 check-cast v3, Ljava/util/List; invoke-interface {p1}, Ljava/util/Collection;->size()I move-result p1 add-int/lit8 p1, p1, -0x1 invoke-direct {v2, p0, v3, p1}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;->(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/util/List;I)V iput-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; .line 1059 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; iput-object p1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext; .line 1060 iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I goto :goto_31 .line 1062 :cond_20 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; move-result-object v0 .line 1063 new-instance v2, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer; invoke-direct {v2, p1}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;->(Ljava/util/Collection;)V iput-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; .line 1064 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; iput-object p1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext; .line 1065 iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I :goto_31 return-void .end method .method protected checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V .registers 4 .line 1071 new-instance v0, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer; invoke-direct {v0, p1, p2}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;->(Ljava/util/Map;Ljava/lang/Object;)V .line 1072 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; move-result-object p1 .line 1073 iput-object v0, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; .line 1074 iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; iput-object p2, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext; const/4 p1, 0x0 .line 1075 iput p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I return-void .end method .method public close()V .registers 4 const-string v0, "not close json text, token : " .line 1462 :try_start_2 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :try_end_6 .catchall {:try_start_2 .. :try_end_6} :catchall_2b const/16 v2, 0x14 if-ne v1, v2, :cond_10 .line 1466 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V return-void .line 1463 :cond_10 :try_start_10 new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I invoke-static {v0}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object v0 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 :try_end_2b .catchall {:try_start_10 .. :try_end_2b} :catchall_2b :catchall_2b move-exception v0 .line 1466 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V throw v0 .end method .method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V .registers 4 .line 1448 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->config(Lcom/alibaba/fastjson/parser/Feature;Z)V return-void .end method .method public getDateFomartPattern()Ljava/lang/String; .registers 2 .line 97 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 4 .line 101 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat; if-nez v0, :cond_18 .line 102 new-instance v0, Ljava/text/SimpleDateFormat; iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String; iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale; invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;Ljava/util/Locale;)V iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat; .line 103 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone; invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V .line 105 :cond_18 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 1314 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List; if-nez v0, :cond_c .line 1315 new-instance v0, Ljava/util/ArrayList; const/4 v1, 0x2 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List; .line 1317 :cond_c 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 1321 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List; if-nez v0, :cond_c .line 1322 new-instance v0, Ljava/util/ArrayList; const/4 v1, 0x2 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List; .line 1324 :cond_c iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List; return-object v0 .end method .method protected getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; .registers 3 .line 1310 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 handleResovleTask(Ljava/lang/Object;)V .registers 10 .line 1471 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List; if-nez p1, :cond_5 return-void .line 1475 :cond_5 invoke-interface {p1}, Ljava/util/List;->size()I move-result p1 const/4 v0, 0x0 move v1, v0 :goto_b if-ge v1, p1, :cond_59 .line 1476 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 1477 iget-object v3, v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; if-nez v3, :cond_1a goto :goto_56 .line 1484 :cond_1a iget-object v4, v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext; const/4 v5, 0x0 if-eqz v4, :cond_24 .line 1485 iget-object v4, v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext; iget-object v4, v4, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; goto :goto_25 :cond_24 move-object v4, v5 .line 1488 :goto_25 # getter for: Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->referenceValue:Ljava/lang/String; invoke-static {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->access$000(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)Ljava/lang/String; move-result-object v6 .line 1490 const-string v7, "$" invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v7 if-eqz v7, :cond_4d move v2, v0 .line 1491 :goto_32 iget v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I if-ge v2, v7, :cond_53 .line 1492 iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; aget-object v7, v7, v2 invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/ParseContext;->toString()Ljava/lang/String; move-result-object v7 invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v7 if-eqz v7, :cond_4a .line 1493 iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; aget-object v5, v5, v2 iget-object v5, v5, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; :cond_4a add-int/lit8 v2, v2, 0x1 goto :goto_32 .line 1497 :cond_4d # getter for: Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->context:Lcom/alibaba/fastjson/parser/ParseContext; invoke-static {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->access$100(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)Lcom/alibaba/fastjson/parser/ParseContext; move-result-object v2 iget-object v5, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; .line 1499 :cond_53 invoke-virtual {v3, v4, v5}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V :goto_56 add-int/lit8 v1, v1, 0x1 goto :goto_b :cond_59 return-void .end method .method public parse()Ljava/lang/Object; .registers 2 const/4 v0, 0x0 .line 1362 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 7 .line 1366 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v1, 0x2 if-eq v0, v1, :cond_14d const/4 v2, 0x3 const/4 v3, 0x1 if-eq v0, v2, :cond_134 const/4 v2, 0x4 const/16 v4, 0x10 if-eq v0, v2, :cond_ff const/16 v2, 0xc if-eq v0, v2, :cond_df const/16 v2, 0xe if-eq v0, v2, :cond_d6 const/4 v2, 0x0 const-string v3, "syntax error, " packed-switch v0, :pswitch_data_15a packed-switch v0, :pswitch_data_166 .line 1443 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 1373 :pswitch_3a iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 1374 new-instance v0, Ljava/util/TreeSet; invoke-direct {v0}, Ljava/util/TreeSet;->()V .line 1375 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V return-object v0 .line 1368 :pswitch_48 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 1369 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;->()V .line 1370 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V return-object v0 .line 1437 :pswitch_56 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isBlankInput()Z move-result p1 if-eqz p1, :cond_5f return-object v2 .line 1440 :cond_5f new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 1422 :pswitch_78 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v0, 0x12 invoke-virtual {p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1424 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget p1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne p1, v0, :cond_a7 .line 1427 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v0, 0xa invoke-virtual {p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1429 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V .line 1430 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number; move-result-object p1 invoke-virtual {p1}, Ljava/lang/Number;->longValue()J move-result-wide v2 .line 1431 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V const/16 p1, 0xb .line 1433 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V .line 1435 new-instance p1, Ljava/util/Date; invoke-direct {p1, v2, v3}, Ljava/util/Date;->(J)V return-object p1 .line 1425 :cond_a7 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 1413 :pswitch_c0 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-object v2 .line 1419 :pswitch_c6 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1420 sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; return-object p1 .line 1416 :pswitch_ce iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1417 sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; return-object p1 .line 1378 :cond_d6 new-instance v0, Lcom/alibaba/fastjson/JSONArray; invoke-direct {v0}, Lcom/alibaba/fastjson/JSONArray;->()V .line 1379 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V return-object v0 .line 1382 :cond_df iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature; iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v0, v1 if-eqz v0, :cond_f5 new-instance v0, Lcom/alibaba/fastjson/JSONObject; new-instance v1, Ljava/util/LinkedHashMap; invoke-direct {v1}, Ljava/util/LinkedHashMap;->()V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;->(Ljava/util/Map;)V goto :goto_fa :cond_f5 new-instance v0, Lcom/alibaba/fastjson/JSONObject; invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;->()V .line 1385 :goto_fa invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 return-object p1 .line 1396 :cond_ff iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object p1 .line 1397 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1399 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature; iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v0, v1 if-eqz v0, :cond_133 .line 1400 new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer; invoke-direct {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;)V .line 1402 :try_start_11a invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z move-result v1 if-eqz v1, :cond_12a .line 1403 iget-object p1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {p1}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object p1 :try_end_126 .catchall {:try_start_11a .. :try_end_126} :catchall_12e .line 1406 invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V return-object p1 :cond_12a invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V goto :goto_133 :catchall_12e move-exception p1 invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V throw p1 :cond_133 :goto_133 return-object p1 .line 1391 :cond_134 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget p1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature; iget v0, v0, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr p1, v0 if-eqz p1, :cond_140 goto :goto_141 :cond_140 const/4 v3, 0x0 .line 1392 :goto_141 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number; move-result-object p1 .line 1393 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-object p1 .line 1387 :cond_14d iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number; move-result-object p1 .line 1388 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-object p1 nop :pswitch_data_15a .packed-switch 0x6 :pswitch_ce :pswitch_c6 :pswitch_c0 :pswitch_78 .end packed-switch :pswitch_data_166 .packed-switch 0x14 :pswitch_56 :pswitch_48 :pswitch_3a :pswitch_c0 .end packed-switch .end method .method public parseArray(Ljava/lang/Class;)Ljava/util/List; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TT;>;)", "Ljava/util/List<", "TT;>;" } .end annotation .line 695 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 696 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V return-object v0 .end method .method public parseArray(Ljava/lang/Class;Ljava/util/Collection;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Ljava/util/Collection;", ")V" } .end annotation .line 701 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V return-void .end method .method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V .registers 4 const/4 v0, 0x0 .line 706 invoke-virtual {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V return-void .end method .method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V .registers 11 .line 711 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0x15 if-eq v0, v1, :cond_10 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0x16 if-ne v0, v1, :cond_15 .line 712 :cond_10 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 715 :cond_15 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0xe if-ne v0, v1, :cond_d9 .line 720 sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; const/4 v1, 0x4 if-ne v0, p1, :cond_2b .line 721 sget-object v0, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec; .line 722 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/4 v3, 0x2 invoke-virtual {v2, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_44 .line 723 :cond_2b const-class v0, Ljava/lang/String; if-ne v0, p1, :cond_37 .line 724 sget-object v0, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec; .line 725 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_44 .line 727 :cond_37 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 728 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v3, 0xc invoke-virtual {v2, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 731 :goto_44 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; .line 732 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-boolean v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z if-nez v3, :cond_51 .line 733 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; invoke-virtual {p0, v3, p2, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext; :cond_51 const/4 p3, 0x0 .line 737 :goto_52 :try_start_52 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v4, 0x10 if-ne v3, v4, :cond_60 .line 738 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V goto :goto_52 .line 742 :cond_60 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :try_end_64 .catchall {:try_start_52 .. :try_end_64} :catchall_d5 const/16 v5, 0xf if-ne v3, v5, :cond_70 .line 782 iput-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; .line 785 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-void .line 746 :cond_70 :try_start_70 sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; const/4 v5, 0x0 if-ne v3, p1, :cond_7f .line 747 sget-object v3, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec; invoke-virtual {v3, p0, v5, v5}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 .line 748 invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z goto :goto_c6 .line 749 :cond_7f const-class v3, Ljava/lang/String; if-ne v3, p1, :cond_a5 .line 751 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v3, v1, :cond_95 .line 752 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v3 .line 753 iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_a1 .line 755 :cond_95 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v3 if-nez v3, :cond_9c goto :goto_a0 .line 758 :cond_9c invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v5 :goto_a0 move-object v3, v5 .line 761 :goto_a1 invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z goto :goto_c6 .line 764 :cond_a5 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v6, 0x8 if-ne v3, v6, :cond_b3 .line 765 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V goto :goto_bb .line 768 :cond_b3 invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-interface {v0, p0, p1, 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 v5 .line 770 :goto_bb invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z .line 771 iget v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I const/4 v5, 0x1 if-ne v3, v5, :cond_c6 .line 772 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V .line 776 :cond_c6 :goto_c6 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v3, v4, :cond_d1 .line 777 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :try_end_d1 .catchall {:try_start_70 .. :try_end_d1} :catchall_d5 :cond_d1 add-int/lit8 p3, p3, 0x1 goto/16 :goto_52 :catchall_d5 move-exception p1 .line 782 iput-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; throw p1 .line 716 :cond_d9 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance p2, Ljava/lang/StringBuilder; const-string p3, "exepct \'[\', but " invoke-direct {p2, p3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget p3, p3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I invoke-static {p3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ", " invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .end method .method public final parseArray(Ljava/util/Collection;)V .registers 3 const/4 v0, 0x0 .line 1092 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V return-void .end method .method public final parseArray(Ljava/util/Collection;Ljava/lang/Object;)V .registers 19 move-object/from16 v1, p0 move-object/from16 v0, p1 .line 1097 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v3, 0x15 if-eq v2, v3, :cond_10 const/16 v3, 0x16 if-ne v2, v3, :cond_19 .line 1099 :cond_10 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 1100 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :cond_19 const/16 v3, 0xe if-ne v2, v3, :cond_279 .line 1107 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-boolean v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z .line 1109 iget-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; if-nez v2, :cond_2a move-object/from16 v5, p2 .line 1111 invoke-virtual {v1, v4, v0, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext; .line 1116 :cond_2a :try_start_2a iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v6, 0x7b const/16 v7, 0x5d const/4 v9, 0x4 const/16 v10, 0xc const/16 v12, 0x22 const/16 v13, 0x10 const/4 v14, 0x1 if-eq v5, v12, :cond_75 if-ne v5, v7, :cond_4d .line 1119 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1120 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_48 .catchall {:try_start_2a .. :try_end_48} :catchall_273 if-nez v2, :cond_4c .line 1297 iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_4c return-void :cond_4d if-ne v5, v6, :cond_6e .line 1126 :try_start_4f iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v15, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v15, v14 iput v15, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1127 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v8, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v15, v8, :cond_5f const/16 v8, 0x1a goto :goto_67 :cond_5f iget-object v8, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v8, v8, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1129 invoke-virtual {v8, v15}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_67 iput-char v8, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1131 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iput v10, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_73 .line 1133 :cond_6e iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :goto_73 const/4 v5, 0x0 goto :goto_88 .line 1137 :cond_75 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature; iget v8, v8, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v5, v8 if-nez v5, :cond_82 move v5, v14 goto :goto_88 .line 1140 :cond_82 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_73 :goto_88 const/4 v8, 0x0 :goto_89 if-eqz v5, :cond_106 .line 1147 iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v15, v12, :cond_106 .line 1148 iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v15, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanStringValue(C)Ljava/lang/String; move-result-object v15 .line 1150 iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v11, 0x2c if-ne v6, v11, :cond_d1 .line 1154 iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v11, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v11, v14 iput v11, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1155 iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v11, v3, :cond_af const/16 v3, 0x1a goto :goto_b7 :cond_af iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1157 invoke-virtual {v3, v11}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_b7 iput-char v3, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1159 invoke-interface {v0, v15}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z .line 1160 iget v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I if-ne v6, v14, :cond_c3 .line 1161 invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V :cond_c3 if-ne v3, v12, :cond_ca const/4 v11, 0x0 :cond_c6 :goto_c6 const/16 v15, 0x7b goto/16 :goto_26a .line 1170 :cond_ca iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V const/4 v5, 0x0 goto :goto_106 :cond_d1 if-ne v6, v7, :cond_101 .line 1174 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, v14 iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1175 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v6, :cond_e3 const/16 v8, 0x1a goto :goto_eb :cond_e3 iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1177 invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_eb iput-char v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1179 invoke-interface {v0, v15}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z .line 1180 iget v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I if-ne v3, v14, :cond_f7 .line 1181 invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V .line 1183 :cond_f7 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_fc .catchall {:try_start_4f .. :try_end_fc} :catchall_273 if-nez v2, :cond_100 .line 1297 iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_100 return-void .line 1186 :cond_101 :try_start_101 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 1190 :cond_106 :goto_106 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :goto_10a if-ne v3, v13, :cond_116 .line 1192 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 1193 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_10a :cond_116 const/4 v6, 0x2 if-eq v3, v6, :cond_1fc const/4 v6, 0x3 if-eq v3, v6, :cond_1da if-eq v3, v9, :cond_1ac const/4 v6, 0x6 if-eq v3, v6, :cond_1a2 const/4 v6, 0x7 if-eq v3, v6, :cond_198 const/16 v6, 0x8 const/4 v11, 0x0 if-eq v3, v6, :cond_190 if-eq v3, v10, :cond_16a const/16 v6, 0x14 if-eq v3, v6, :cond_162 const/16 v6, 0x17 if-eq v3, v6, :cond_15a const/16 v6, 0xe if-eq v3, v6, :cond_14d const/16 v11, 0xf if-eq v3, v11, :cond_143 .line 1263 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v11 :cond_13f :goto_13f move-object v3, v11 const/4 v11, 0x0 goto/16 :goto_20a .line 1258 :cond_143 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_148 .catchall {:try_start_101 .. :try_end_148} :catchall_273 if-nez v2, :cond_14c .line 1297 iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_14c return-void .line 1245 :cond_14d :try_start_14d new-instance v11, Lcom/alibaba/fastjson/JSONArray; invoke-direct {v11}, Lcom/alibaba/fastjson/JSONArray;->()V .line 1246 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-virtual {v1, v11, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V goto :goto_13f :cond_15a const/16 v6, 0xe .line 1255 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_13f .line 1261 :cond_162 new-instance v0, Lcom/alibaba/fastjson/JSONException; const-string v3, "unclosed jsonArray" invoke-direct {v0, v3}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_16a const/16 v6, 0xe .line 1237 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v11, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature; iget v11, v11, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v3, v11 if-eqz v3, :cond_182 .line 1238 new-instance v3, Lcom/alibaba/fastjson/JSONObject; new-instance v11, Ljava/util/LinkedHashMap; invoke-direct {v11}, Ljava/util/LinkedHashMap;->()V invoke-direct {v3, v11}, Lcom/alibaba/fastjson/JSONObject;->(Ljava/util/Map;)V goto :goto_187 .line 1240 :cond_182 new-instance v3, Lcom/alibaba/fastjson/JSONObject; invoke-direct {v3}, Lcom/alibaba/fastjson/JSONObject;->()V .line 1242 :goto_187 invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v11 invoke-virtual {v1, v3, v11}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v11 goto :goto_13f :cond_190 const/16 v6, 0xe .line 1251 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_13f :cond_198 const/16 v6, 0xe .line 1232 sget-object v11, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; .line 1233 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_13f :cond_1a2 const/16 v6, 0xe .line 1228 sget-object v11, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; .line 1229 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_13f :cond_1ac const/16 v6, 0xe .line 1211 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v11 .line 1212 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1214 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v15, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature; iget v15, v15, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v3, v15 if-eqz v3, :cond_13f .line 1215 new-instance v3, Lcom/alibaba/fastjson/parser/JSONLexer; invoke-direct {v3, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;)V .line 1216 invoke-virtual {v3, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z move-result v15 if-eqz v15, :cond_1d5 .line 1217 iget-object v11, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v11}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v11 .line 1221 :cond_1d5 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V goto/16 :goto_13f :cond_1da const/16 v6, 0xe .line 1203 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v11, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature; iget v11, v11, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v3, v11 if-eqz v3, :cond_1ef .line 1204 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number; move-result-object v3 const/4 v11, 0x0 goto :goto_1f6 .line 1206 :cond_1ef iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/4 v11, 0x0 invoke-virtual {v3, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number; move-result-object v3 .line 1208 :goto_1f6 iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v15, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_20a :cond_1fc const/16 v6, 0xe const/4 v11, 0x0 .line 1199 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number; move-result-object v3 .line 1200 iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v15, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 1267 :goto_20a invoke-interface {v0, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z .line 1268 iget v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I if-ne v3, v14, :cond_214 .line 1269 invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V .line 1271 :cond_214 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v3, v13, :cond_c6 .line 1273 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v3, v12, :cond_22d .line 1275 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 1276 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V goto/16 :goto_c6 :cond_22d const/16 v15, 0x30 if-lt v3, v15, :cond_242 const/16 v15, 0x39 if-gt v3, v15, :cond_242 .line 1278 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 1279 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V goto/16 :goto_c6 :cond_242 const/16 v15, 0x7b if-ne v3, v15, :cond_265 .line 1281 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iput v10, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 1284 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v6, v14 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1285 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v6, v7, :cond_25a const/16 v6, 0x1a goto :goto_262 :cond_25a iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v7, v7, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1287 invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_262 iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_26a .line 1290 :cond_265 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :try_end_26a .catchall {:try_start_14d .. :try_end_26a} :catchall_273 :goto_26a add-int/lit8 v8, v8, 0x1 move v6, v15 const/16 v3, 0xe const/16 v7, 0x5d goto/16 :goto_89 :catchall_273 move-exception v0 if-nez v2, :cond_278 .line 1297 iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_278 throw v0 .line 1104 :cond_279 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v3, Ljava/lang/StringBuilder; const-string v4, "syntax error, expect [, actual " invoke-direct {v3, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object v2 invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, ", pos " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method public parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object; .registers 18 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 789 iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v3, 0x0 const/16 v4, 0x10 const/16 v5, 0x8 if-ne v2, v5, :cond_15 .line 790 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-object v3 .line 794 :cond_15 iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v6, 0xe const-string v7, "syntax error, " if-ne v2, v6, :cond_198 .line 798 array-length v2, v1 new-array v2, v2, [Ljava/lang/Object; .line 799 array-length v8, v1 const/4 v9, 0x0 const/16 v10, 0xf if-nez v8, :cond_54 .line 800 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 802 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v1, v10, :cond_3b .line 806 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 807 new-array v1, v9, [Ljava/lang/Object; return-object v1 .line 803 :cond_3b new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 810 :cond_54 iget-object v8, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/4 v11, 0x2 invoke-virtual {v8, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V move v8, v9 .line 812 :goto_5b array-length v12, v1 if-ge v8, v12, :cond_173 .line 815 iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v12, v12, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v12, v5, :cond_6c .line 817 iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v12, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V move-object v12, v3 goto/16 :goto_135 .line 819 :cond_6c aget-object v12, v1, v8 .line 820 sget-object v13, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-eq v12, v13, :cond_115 const-class v13, Ljava/lang/Integer; if-ne v12, v13, :cond_78 goto/16 :goto_115 .line 828 :cond_78 const-class v13, Ljava/lang/String; if-ne v12, v13, :cond_9c .line 829 iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v13, v13, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v14, 0x4 if-ne v13, v14, :cond_90 .line 830 iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v12 .line 831 iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v13, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto/16 :goto_135 .line 833 :cond_90 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v13 .line 834 iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-static {v13, v12, 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 v12 goto/16 :goto_135 .line 839 :cond_9c array-length v13, v1 add-int/lit8 v13, v13, -0x1 if-ne v8, v13, :cond_b1 .line 840 instance-of v13, v12, Ljava/lang/Class; if-eqz v13, :cond_b1 .line 841 move-object v13, v12 check-cast v13, Ljava/lang/Class; .line 842 invoke-virtual {v13}, Ljava/lang/Class;->isArray()Z move-result v14 .line 843 invoke-virtual {v13}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class; move-result-object v13 goto :goto_b3 :cond_b1 move-object v13, v3 move v14, v9 :goto_b3 if-eqz v14, :cond_10a .line 848 iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v14, v14, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-eq v14, v6, :cond_10a .line 849 new-instance v14, Ljava/util/ArrayList; invoke-direct {v14}, Ljava/util/ArrayList;->()V .line 851 iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v15, v13}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v13 .line 853 iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-eq v15, v10, :cond_103 .line 856 :goto_cc invoke-interface {v13, v0, v12, 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 v15 .line 855 invoke-interface {v14, v15}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 858 iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v15, v4, :cond_e3 .line 859 iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v5, 0xc invoke-virtual {v15, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V const/16 v5, 0x8 goto :goto_cc .line 860 :cond_e3 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v5, v10, :cond_ea goto :goto_103 .line 863 :cond_ea new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 868 :cond_103 :goto_103 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-static {v14, v12, v5}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object; move-result-object v12 goto :goto_135 .line 870 :cond_10a iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v5, v12}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v5 .line 871 invoke-interface {v5, v0, v12, 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 v12 goto :goto_135 .line 821 :cond_115 :goto_115 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v5, v11, :cond_12b .line 822 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->intValue()I move-result v5 invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v12 .line 823 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_135 .line 825 :cond_12b invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v5 .line 826 iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-static {v5, v12, v13}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object; move-result-object v12 .line 875 :goto_135 aput-object v12, v2, v8 .line 877 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v5, v10, :cond_13e goto :goto_173 .line 881 :cond_13e iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v5, v4, :cond_15a .line 885 array-length v5, v1 add-int/lit8 v5, v5, -0x1 if-ne v8, v5, :cond_14f .line 886 iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V goto :goto_154 .line 888 :cond_14f iget-object v5, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v5, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :goto_154 add-int/lit8 v8, v8, 0x1 const/16 v5, 0x8 goto/16 :goto_5b .line 882 :cond_15a new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 892 :cond_173 :goto_173 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v1, v10, :cond_17f .line 896 iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-object v2 .line 893 :cond_17f new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 795 :cond_198 new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .end method .method public parseArrayWithType(Ljava/lang/reflect/Type;)Ljava/lang/Object; .registers 8 .line 984 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0x8 if-ne v0, v1, :cond_f .line 985 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V const/4 p1, 0x0 return-object p1 .line 989 :cond_f 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 991 array-length v1, v0 const/4 v2, 0x1 if-ne v1, v2, :cond_c4 const/4 v1, 0x0 .line 995 aget-object v0, v0, v1 .line 997 instance-of v3, v0, Ljava/lang/Class; if-eqz v3, :cond_2c .line 998 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V .line 999 check-cast v0, Ljava/lang/Class; invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V return-object p1 .line 1003 :cond_2c instance-of v3, v0, Ljava/lang/reflect/WildcardType; if-eqz v3, :cond_6c .line 1004 check-cast v0, Ljava/lang/reflect/WildcardType; .line 1007 invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type; move-result-object v2 aget-object v1, v2, v1 .line 1010 const-class v2, Ljava/lang/Object; invoke-virtual {v2, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_61 .line 1011 invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type; move-result-object v0 array-length v0, v0 if-nez v0, :cond_4c .line 1013 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object p1 return-object p1 .line 1015 :cond_4c new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "not support type : " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 1019 :cond_61 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V .line 1020 check-cast v1, Ljava/lang/Class; invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V return-object p1 .line 1027 :cond_6c instance-of v3, v0, Ljava/lang/reflect/TypeVariable; if-eqz v3, :cond_a0 .line 1028 move-object v3, v0 check-cast v3, Ljava/lang/reflect/TypeVariable; .line 1029 invoke-interface {v3}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type; move-result-object v4 .line 1031 array-length v5, v4 if-ne v5, v2, :cond_8b .line 1035 aget-object v1, v4, v1 .line 1036 instance-of v2, v1, Ljava/lang/Class; if-eqz v2, :cond_a0 .line 1037 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V .line 1038 check-cast v1, Ljava/lang/Class; invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V return-object p1 .line 1032 :cond_8b new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "not support : " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 1043 :cond_a0 instance-of v1, v0, Ljava/lang/reflect/ParameterizedType; if-eqz v1, :cond_af .line 1044 check-cast v0, Ljava/lang/reflect/ParameterizedType; .line 1046 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V .line 1047 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V return-object p1 .line 1051 :cond_af new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "TODO : " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 992 :cond_c4 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "not support type " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method public parseObject()Lcom/alibaba/fastjson/JSONObject; .registers 3 .line 1084 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature; iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v0, v1 if-eqz v0, :cond_16 new-instance v0, Lcom/alibaba/fastjson/JSONObject; new-instance v1, Ljava/util/LinkedHashMap; invoke-direct {v1}, Ljava/util/LinkedHashMap;->()V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;->(Ljava/util/Map;)V goto :goto_1b :cond_16 new-instance v0, Lcom/alibaba/fastjson/JSONObject; invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;->()V :goto_1b const/4 v1, 0x0 .line 1087 invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/alibaba/fastjson/JSONObject; return-object v0 .end method .method public parseObject(Ljava/lang/Class;)Ljava/lang/Object; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TT;>;)TT;" } .end annotation const/4 v0, 0x0 .line 655 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/reflect/Type;", ")TT;" } .end annotation const/4 v0, 0x0 .line 659 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/reflect/Type;", "Ljava/lang/Object;", ")TT;" } .end annotation .line 664 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0x8 if-ne v0, v1, :cond_f .line 665 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V const/4 p1, 0x0 return-object p1 .line 669 :cond_f iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v1, 0x4 if-ne v0, v1, :cond_3a .line 670 const-class v0, [B if-ne p1, v0, :cond_26 .line 671 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->bytesValue()[B move-result-object p1 .line 672 iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-object p1 .line 676 :cond_26 const-class v0, [C if-ne p1, v0, :cond_3a .line 677 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object p1 .line 678 iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 679 invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C move-result-object p1 return-object p1 .line 683 :cond_3a 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 686 :try_start_40 invoke-interface {v0, p0, p1, p2}, 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 p1 :try_end_44 .catch Lcom/alibaba/fastjson/JSONException; {:try_start_40 .. :try_end_44} :catch_50 .catch Ljava/lang/Exception; {:try_start_40 .. :try_end_44} :catch_45 return-object p1 :catch_45 move-exception p1 .line 690 new-instance p2, Lcom/alibaba/fastjson/JSONException; invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v0 invoke-direct {p2, v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p2 :catch_50 move-exception p1 .line 688 throw p1 .end method .method public parseObject(Ljava/util/Map;)Ljava/lang/Object; .registers 3 const/4 v0, 0x0 .line 1080 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public final parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; .registers 21 move-object/from16 v1, p0 move-object/from16 v0, p1 move-object/from16 v2, p2 .line 161 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; .line 163 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v5, 0x0 const/16 v6, 0x8 if-ne v4, v6, :cond_13 .line 165 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-object v5 :cond_13 const/16 v7, 0xc const/16 v8, 0x10 if-eq v4, v7, :cond_43 if-ne v4, v8, :cond_1c goto :goto_43 .line 170 :cond_1c new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; const-string v5, "syntax error, expect {, actual " invoke-direct {v2, v5}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-static {v4}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object v4 invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 const-string v4, ", " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 175 :cond_43 :goto_43 instance-of v4, v0, Lcom/alibaba/fastjson/JSONObject; if-eqz v4, :cond_50 .line 176 move-object v4, v0 check-cast v4, Lcom/alibaba/fastjson/JSONObject; .line 177 invoke-virtual {v4}, Lcom/alibaba/fastjson/JSONObject;->getInnerMap()Ljava/util/Map; move-result-object v4 const/4 v11, 0x1 goto :goto_52 :cond_50 move-object v4, v0 const/4 v11, 0x0 .line 185 :goto_52 iget v12, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v13, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature; iget v13, v13, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v12, v13 if-eqz v12, :cond_5d const/4 v12, 0x1 goto :goto_5e :cond_5d const/4 v12, 0x0 .line 186 :goto_5e iget-boolean v13, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z .line 188 iget-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; const/4 v15, 0x0 .line 192 :goto_63 :try_start_63 iget-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v6, 0x7d const/16 v7, 0x22 if-eq v5, v7, :cond_72 if-eq v5, v6, :cond_72 .line 195 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 196 iget-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :cond_72 :goto_72 const/16 v8, 0x2c if-ne v5, v8, :cond_7f .line 200 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 201 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 202 iget-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :try_end_7e .catchall {:try_start_63 .. :try_end_7e} :catchall_6ce goto :goto_72 .line 207 :cond_7f const-string v8, "expect \':\' at " const/16 v9, 0x3a const-string v10, "syntax error, " const/16 v6, 0x1a if-ne v5, v7, :cond_c1 .line 208 :try_start_89 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; invoke-virtual {v3, v5, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; move-result-object v5 .line 210 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v7, v9, :cond_be .line 212 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 213 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v7, v9, :cond_9b goto :goto_be .line 216 :cond_9b new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, ", name " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_be :goto_be const/4 v7, 0x0 goto/16 :goto_1cb :cond_c1 const/16 v7, 0x7d if-ne v5, v7, :cond_e5 .line 222 iget v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v4, 0x1 add-int/2addr v2, v4 iput v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 223 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v4, :cond_d0 goto :goto_d6 :cond_d0 iget-object v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 225 invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_d6 iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v2, 0x0 .line 227 iput v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/16 v2, 0x10 .line 228 invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_e0 .catchall {:try_start_89 .. :try_end_e0} :catchall_6ce if-nez v13, :cond_e4 .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_e4 return-object v0 :cond_e5 const/16 v7, 0x27 if-ne v5, v7, :cond_114 .line 231 :try_start_e9 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; invoke-virtual {v3, v5, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; move-result-object v5 .line 232 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v7, v9, :cond_f6 .line 233 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 235 :cond_f6 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v7, v9, :cond_fb goto :goto_be .line 237 :cond_fb new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_114 if-eq v5, v6, :cond_6b3 const/16 v7, 0x2c if-eq v5, v7, :cond_698 const/16 v7, 0x30 if-lt v5, v7, :cond_122 const/16 v7, 0x39 if-le v5, v7, :cond_126 :cond_122 const/16 v7, 0x2d if-ne v5, v7, :cond_182 :cond_126 const/4 v5, 0x0 .line 244 iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 245 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V :try_end_12c .catchall {:try_start_e9 .. :try_end_12c} :catchall_6ce .line 247 :try_start_12c iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v7, 0x2 if-ne v5, v7, :cond_136 .line 248 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number; move-result-object v5 goto :goto_13c :cond_136 const/4 v5, 0x1 .line 250 invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number; move-result-object v7 move-object v5, v7 :goto_13c if-eqz v11, :cond_142 .line 254 invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v5 :try_end_142 .catch Ljava/lang/NumberFormatException; {:try_start_12c .. :try_end_142} :catch_165 .catchall {:try_start_12c .. :try_end_142} :catchall_6ce .line 259 :cond_142 :try_start_142 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v7, v9, :cond_148 goto/16 :goto_be .line 261 :cond_148 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v4, "parse number key error, " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 257 :catch_165 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v4, "parse number key error, " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_182 const/16 v7, 0x7b if-eq v5, v7, :cond_1c3 const/16 v7, 0x5b if-ne v5, v7, :cond_18b goto :goto_1c3 .line 268 :cond_18b iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; move-result-object v5 .line 269 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 270 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v7, v9, :cond_1a0 if-eqz v11, :cond_be .line 276 invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v5 goto/16 :goto_be .line 272 :cond_1a0 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, ", actual " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 264 :cond_1c3 :goto_1c3 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 265 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v5 const/4 v7, 0x1 :goto_1cb const/16 v8, 0xd if-nez v7, :cond_209 .line 283 iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v9, 0x1 add-int/2addr v7, v9 iput v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 284 iget v9, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v7, v9, :cond_1db move v7, v6 goto :goto_1e1 :cond_1db iget-object v9, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 286 invoke-virtual {v9, v7}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_1e1 iput-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_1e3 const/16 v9, 0x20 if-gt v7, v9, :cond_206 const/16 v9, 0x20 if-eq v7, v9, :cond_1fe const/16 v9, 0xa if-eq v7, v9, :cond_1fe if-eq v7, v8, :cond_1fe const/16 v9, 0x9 if-eq v7, v9, :cond_1fe const/16 v9, 0xc if-eq v7, v9, :cond_1fe const/16 v9, 0x8 if-ne v7, v9, :cond_20d goto :goto_200 :cond_1fe const/16 v9, 0x8 .line 299 :goto_200 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 300 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_1e3 :cond_206 const/16 v9, 0x8 goto :goto_20d :cond_209 const/16 v9, 0x8 .line 306 iget-char v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :cond_20d :goto_20d const/4 v6, 0x0 .line 309 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I :try_end_210 .catchall {:try_start_142 .. :try_end_210} :catchall_6ce .line 311 const-string v6, "@type" if-ne v5, v6, :cond_2df :try_start_214 sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature; .line 312 invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z move-result v9 if-nez v9, :cond_2df .line 313 iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable; const/16 v7, 0x22 invoke-virtual {v3, v5, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; move-result-object v5 .line 314 iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; iget v9, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I const/4 v10, 0x0 invoke-virtual {v7, v5, v10, v9}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class; move-result-object v7 if-nez v7, :cond_23a .line 317 invoke-interface {v0, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; const/16 v6, 0x8 const/16 v7, 0xc const/16 v8, 0x10 goto/16 :goto_63 :cond_23a const/16 v4, 0x10 .line 321 invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 322 iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v6, v8, :cond_2ae .line 323 invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_246 .catchall {:try_start_214 .. :try_end_246} :catchall_6ce .line 326 :try_start_246 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v2 .line 327 instance-of v3, v2, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer; if-eqz v3, :cond_282 .line 328 check-cast v2, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer; .line 329 invoke-virtual {v2, v1, v7}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->createInstance(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object; move-result-object v3 .line 331 invoke-interface/range {p1 .. p1}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_25e :goto_25e invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v4 if-eqz v4, :cond_283 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v4 .line 332 check-cast v4, Ljava/util/Map$Entry; .line 333 invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v6 .line 334 instance-of v8, v6, Ljava/lang/String; if-eqz v8, :cond_25e .line 335 check-cast v6, Ljava/lang/String; invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; move-result-object v6 if-eqz v6, :cond_25e .line 337 invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v4 invoke-virtual {v6, v3, v4}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V goto :goto_25e :cond_282 move-object v3, v10 :cond_283 if-nez v3, :cond_2a0 .line 344 const-class v0, Ljava/lang/Cloneable; if-ne v7, v0, :cond_28f .line 345 new-instance v3, Ljava/util/HashMap; invoke-direct {v3}, Ljava/util/HashMap;->()V goto :goto_2a0 .line 346 :cond_28f const-string v0, "java.util.Collections$EmptyMap" invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_29c .line 347 invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map; move-result-object v3 goto :goto_2a0 .line 349 :cond_29c invoke-virtual {v7}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v3 :try_end_2a0 .catch Ljava/lang/Exception; {:try_start_246 .. :try_end_2a0} :catch_2a5 .catchall {:try_start_246 .. :try_end_2a0} :catchall_6ce :cond_2a0 :goto_2a0 if-nez v13, :cond_2a4 .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_2a4 return-object v3 :catch_2a5 move-exception v0 .line 355 :try_start_2a6 new-instance v2, Lcom/alibaba/fastjson/JSONException; const-string v3, "create instance error" invoke-direct {v2, v3, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v2 :cond_2ae const/4 v3, 0x2 .line 359 iput v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I .line 361 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; if-eqz v3, :cond_2bc instance-of v3, v2, Ljava/lang/Integer; if-nez v3, :cond_2bc .line 362 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V .line 365 :cond_2bc invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I move-result v3 if-lez v3, :cond_2d0 .line 366 iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-static {v0, v7, v2}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object; move-result-object v0 .line 367 invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/Object;)V :try_end_2cb .catchall {:try_start_2a6 .. :try_end_2cb} :catchall_6ce if-nez v13, :cond_2cf .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_2cf return-object v0 .line 371 :cond_2d0 :try_start_2d0 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v0 .line 372 invoke-interface {v0, v1, v7, v2}, 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 v0 :try_end_2da .catchall {:try_start_2d0 .. :try_end_2da} :catchall_6ce if-nez v13, :cond_2de .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_2de return-object v0 :cond_2df const/4 v6, 0x0 .line 375 :try_start_2e0 const-string v9, "$ref" const/4 v6, 0x4 if-ne v5, v9, :cond_3b0 if-eqz v14, :cond_3b0 sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature; .line 377 invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z move-result v9 if-nez v9, :cond_3b0 .line 379 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 380 iget v0, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v0, v6, :cond_391 .line 381 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v0 .line 382 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V .line 385 const-string v2, "@" invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_31d .line 386 iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; .line 387 iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; .line 388 instance-of v4, v2, [Ljava/lang/Object; if-nez v4, :cond_31b instance-of v4, v2, Ljava/util/Collection; if-eqz v4, :cond_312 goto :goto_31b .line 390 :cond_312 iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext; if-eqz v2, :cond_367 .line 391 iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext; iget-object v5, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; goto :goto_368 :cond_31b :goto_31b move-object v5, v2 goto :goto_368 .line 393 :cond_31d const-string v2, ".." invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_338 .line 394 iget-object v2, v14, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; if-eqz v2, :cond_32c .line 395 iget-object v5, v14, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; goto :goto_368 .line 397 :cond_32c new-instance v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; invoke-direct {v2, v14, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V const/4 v0, 0x1 .line 398 iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I goto :goto_367 .line 400 :cond_338 const-string v2, "$" invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_35c move-object v2, v14 .line 402 :goto_341 iget-object v4, v2, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext; if-eqz v4, :cond_348 .line 403 iget-object v2, v2, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext; goto :goto_341 .line 406 :cond_348 iget-object v4, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; if-eqz v4, :cond_350 .line 407 iget-object v0, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; move-object v5, v0 goto :goto_368 .line 409 :cond_350 new-instance v4, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; invoke-direct {v4, v2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V const/4 v0, 0x1 .line 410 iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I goto :goto_367 .line 413 :cond_35c new-instance v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask; invoke-direct {v2, v14, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V const/4 v0, 0x1 .line 414 iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I :cond_367 :goto_367 const/4 v5, 0x0 .line 417 :goto_368 iget v0, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v0, v8, :cond_376 const/16 v0, 0x10 .line 420 invoke-virtual {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_371 .catchall {:try_start_2e0 .. :try_end_371} :catchall_6ce if-nez v13, :cond_375 .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_375 return-object v5 .line 418 :cond_376 :try_start_376 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 424 :cond_391 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v4, "illegal ref, " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I 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; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_3b0 if-nez v13, :cond_3c1 if-nez v15, :cond_3c1 .line 430 iget-object v9, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; invoke-virtual {v1, v9, v0, v2}, 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 v9 if-nez v14, :cond_3bd move-object v14, v9 :cond_3bd const/16 v9, 0x22 const/4 v15, 0x1 goto :goto_3c3 :cond_3c1 const/16 v9, 0x22 :goto_3c3 if-ne v7, v9, :cond_3ea .line 439 invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanStringValue(C)Ljava/lang/String; move-result-object v6 if-eqz v12, :cond_3e0 .line 443 new-instance v7, Lcom/alibaba/fastjson/parser/JSONLexer; invoke-direct {v7, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;)V const/4 v9, 0x1 .line 444 invoke-virtual {v7, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z move-result v16 if-eqz v16, :cond_3dd .line 445 iget-object v6, v7, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v6}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v6 .line 447 :cond_3dd invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V :cond_3e0 if-eqz v4, :cond_3e6 .line 451 invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_3fd .line 453 :cond_3e6 invoke-interface {v0, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_3fd :cond_3ea const/16 v9, 0x30 if-lt v7, v9, :cond_3f2 const/16 v9, 0x39 if-le v7, v9, :cond_3f6 :cond_3f2 const/16 v9, 0x2d if-ne v7, v9, :cond_401 .line 456 :cond_3f6 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumberValue()Ljava/lang/Number; move-result-object v6 .line 457 invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :goto_3fd move/from16 v17, v11 goto/16 :goto_578 :cond_401 const/16 v9, 0x5b if-ne v7, v9, :cond_474 const/16 v6, 0xe .line 459 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 462 iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v7, 0x1 add-int/2addr v6, v7 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 463 iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v6, v7, :cond_416 const/16 v6, 0x1a goto :goto_41c :cond_416 iget-object v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 465 invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_41c iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 467 new-instance v6, Ljava/util/ArrayList; invoke-direct {v6}, Ljava/util/ArrayList;->()V if-eqz v2, :cond_42e .line 469 invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v7 const-class v9, Ljava/lang/Integer; if-ne v7, v9, :cond_42e goto :goto_431 .line 471 :cond_42e invoke-virtual {v1, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V .line 474 :goto_431 invoke-virtual {v1, v6, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V .line 475 new-instance v7, Lcom/alibaba/fastjson/JSONArray; invoke-direct {v7, v6}, Lcom/alibaba/fastjson/JSONArray;->(Ljava/util/List;)V if-eqz v4, :cond_43f .line 477 invoke-interface {v4, v5, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_442 .line 479 :cond_43f invoke-interface {v0, v5, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 482 :goto_442 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v5, v8, :cond_450 const/16 v6, 0x10 .line 484 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_44b .catchall {:try_start_376 .. :try_end_44b} :catchall_6ce if-nez v13, :cond_44f .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_44f return-object v0 :cond_450 const/16 v6, 0x10 if-ne v5, v6, :cond_459 move v5, v6 move/from16 v17, v11 goto/16 :goto_5a2 .line 489 :cond_459 :try_start_459 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_474 const/16 v9, 0x7b if-ne v7, v9, :cond_53a .line 493 iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v7, 0x1 add-int/2addr v6, v7 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 494 iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v6, v7, :cond_485 const/16 v6, 0x1a goto :goto_48b :cond_485 iget-object v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 496 invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_48b iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v9, 0xc .line 497 iput v9, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 500 instance-of v6, v2, Ljava/lang/Integer; .line 502 iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature; iget v9, v9, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v7, v9 if-eqz v7, :cond_4a7 new-instance v7, Lcom/alibaba/fastjson/JSONObject; new-instance v9, Ljava/util/LinkedHashMap; invoke-direct {v9}, Ljava/util/LinkedHashMap;->()V invoke-direct {v7, v9}, Lcom/alibaba/fastjson/JSONObject;->(Ljava/util/Map;)V goto :goto_4ac :cond_4a7 new-instance v7, Lcom/alibaba/fastjson/JSONObject; invoke-direct {v7}, Lcom/alibaba/fastjson/JSONObject;->()V :goto_4ac if-nez v13, :cond_4b5 if-nez v6, :cond_4b5 .line 510 invoke-virtual {v1, v14, v7, v5}, 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 v9 goto :goto_4b6 :cond_4b5 const/4 v9, 0x0 .line 515 :goto_4b6 iget-object v8, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver; if-eqz v8, :cond_4da if-eqz v5, :cond_4c3 .line 516 invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v8 move/from16 v17, v11 goto :goto_4c6 :cond_4c3 move/from16 v17, v11 const/4 v8, 0x0 .line 517 :goto_4c6 iget-object v11, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver; invoke-interface {v11, v0, v8}, Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;->resolve(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type; move-result-object v8 if-eqz v8, :cond_4dc .line 519 iget-object v11, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v11, v8}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v11 .line 520 invoke-interface {v11, v1, v8, v5}, 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 v8 const/4 v11, 0x1 goto :goto_4de :cond_4da move/from16 v17, v11 :cond_4dc const/4 v8, 0x0 const/4 v11, 0x0 :goto_4de if-nez v11, :cond_4e4 .line 525 invoke-virtual {v1, v7, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v8 :cond_4e4 if-eqz v9, :cond_4ea if-eq v7, v8, :cond_4ea .line 528 iput-object v0, v9, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object; .line 531 :cond_4ea iget v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I const/4 v9, 0x1 if-ne v7, v9, :cond_4f6 .line 532 invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v7 invoke-virtual {v1, v0, v7}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V :cond_4f6 if-eqz v4, :cond_4fc .line 536 invoke-interface {v4, v5, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_4ff .line 538 :cond_4fc invoke-interface {v0, v5, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :goto_4ff if-eqz v6, :cond_504 .line 542 invoke-virtual {v1, v14, v8, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext; .line 545 :cond_504 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v6, 0xd if-ne v5, v6, :cond_518 const/16 v6, 0x10 .line 547 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V if-nez v13, :cond_513 .line 550 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :try_end_513 .catchall {:try_start_459 .. :try_end_513} :catchall_6ce :cond_513 if-nez v13, :cond_517 .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_517 return-object v0 :cond_518 const/16 v6, 0x10 if-ne v5, v6, :cond_51f move v5, v6 goto/16 :goto_5a2 .line 556 :cond_51f :try_start_51f new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_53a move/from16 v17, v11 const/16 v8, 0x74 if-ne v7, v8, :cond_55b .line 559 iget-object v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v7, "true" iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v6, v7, v8}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v6 if-eqz v6, :cond_578 .line 560 iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v6, 0x3 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 561 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 562 sget-object v6, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; invoke-interface {v0, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_578 :cond_55b const/16 v8, 0x66 if-ne v7, v8, :cond_646 .line 565 iget-object v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v8, "false" iget v9, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v7, v8, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v7 if-eqz v7, :cond_578 .line 566 iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v7, v6 iput v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 567 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 568 sget-object v6, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; invoke-interface {v0, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 589 :cond_578 :goto_578 iget-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v6, 0x2c if-eq v5, v6, :cond_587 const/16 v6, 0x7d if-eq v5, v6, :cond_587 .line 591 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V .line 592 iget-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :cond_587 const/16 v6, 0x2c if-ne v5, v6, :cond_5a6 .line 598 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v6, 0x1 add-int/2addr v5, v6 iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 599 iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v6, :cond_598 const/16 v6, 0x1a goto :goto_59e :cond_598 iget-object v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 601 invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_59e iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v5, 0x10 :goto_5a2 const/4 v6, 0x0 const/4 v7, 0x1 goto/16 :goto_674 :cond_5a6 const/16 v4, 0x7d if-ne v5, v4, :cond_62b .line 607 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v5, 0x1 add-int/2addr v4, v5 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 608 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_5b7 const/16 v4, 0x1a goto :goto_5bd :cond_5b7 iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 610 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_5bd iput-char v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v6, 0x0 .line 612 iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/16 v5, 0x2c if-ne v4, v5, :cond_5e0 .line 615 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v5, 0x1 add-int/2addr v4, v5 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 616 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_5d3 const/16 v6, 0x1a goto :goto_5d9 :cond_5d3 iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 618 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_5d9 iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0x10 .line 619 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_61f :cond_5e0 const/16 v5, 0x7d if-ne v4, v5, :cond_5fe .line 621 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v5, 0x1 add-int/2addr v4, v5 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 622 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_5f1 const/16 v6, 0x1a goto :goto_5f7 :cond_5f1 iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 624 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_5f7 iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0xd .line 625 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_61f :cond_5fe const/16 v5, 0x5d if-ne v4, v5, :cond_61c .line 627 iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v7, 0x1 add-int/2addr v4, v7 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 628 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_60f const/16 v6, 0x1a goto :goto_615 :cond_60f iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 630 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_615 iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0xf .line 631 iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_61f .line 633 :cond_61c invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :goto_61f if-nez v13, :cond_626 .line 637 iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; invoke-virtual {v1, v3, v0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext; :try_end_626 .catchall {:try_start_51f .. :try_end_626} :catchall_6ce :cond_626 if-nez v13, :cond_62a .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_62a return-object v0 .line 642 :cond_62b :try_start_62b new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_646 const/4 v6, 0x0 const/4 v7, 0x1 .line 571 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V .line 572 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v8 .line 574 invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v9 const-class v11, Lcom/alibaba/fastjson/JSONObject; if-ne v9, v11, :cond_65b .line 575 invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v5 .line 574 :cond_65b invoke-interface {v0, v5, v8}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 579 iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v8, 0xd if-ne v5, v8, :cond_66e const/16 v5, 0x10 .line 580 invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V :try_end_669 .catchall {:try_start_62b .. :try_end_669} :catchall_6ce if-nez v13, :cond_66d .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_66d return-object v0 :cond_66e const/16 v5, 0x10 .line 582 :try_start_670 iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v8, v5, :cond_67d :goto_674 move v8, v5 move/from16 v11, v17 const/16 v6, 0x8 const/16 v7, 0xc goto/16 :goto_63 .line 585 :cond_67d new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 242 :cond_698 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 240 :cond_6b3 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :try_end_6ce .catchall {:try_start_670 .. :try_end_6ce} :catchall_6ce :catchall_6ce move-exception v0 if-nez v13, :cond_6d3 .line 647 iput-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; :cond_6d3 throw v0 .end method .method public parseObject(Ljava/lang/Object;)V .registers 12 .line 902 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 904 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v1 .line 905 instance-of v2, v1, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer; const/4 v3, 0x0 if-eqz v2, :cond_12 .line 906 check-cast v1, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer; goto :goto_13 :cond_12 move-object v1, v3 .line 911 :goto_13 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v4, 0xc const/16 v5, 0x10 if-eq v2, v4, :cond_39 if-ne v2, v5, :cond_20 goto :goto_39 .line 913 :cond_20 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "syntax error, expect {, actual " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 918 :cond_39 :goto_39 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-virtual {v2, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; move-result-object v2 const/16 v4, 0xd if-nez v2, :cond_58 .line 921 iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v6, v4, :cond_51 .line 922 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-void .line 925 :cond_51 iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v6, v5, :cond_58 goto :goto_39 :cond_58 if-eqz v1, :cond_5f .line 932 invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer; move-result-object v6 goto :goto_60 :cond_5f move-object v6, v3 :goto_60 const/16 v7, 0x3a if-nez v6, :cond_a6 .line 936 iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->IgnoreNotMatch:Lcom/alibaba/fastjson/parser/Feature; iget v8, v8, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v6, v8 if-eqz v6, :cond_83 .line 940 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V .line 941 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; .line 943 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v2, v4, :cond_39 .line 944 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-void .line 937 :cond_83 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v3, "setter not found, class " invoke-direct {v1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v0 invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", property " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 950 :cond_a6 iget-object v2, v6, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo; iget-object v2, v2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 951 iget-object v8, v6, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo; iget-object v8, v8, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; .line 953 sget-object v9, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne v2, v9, :cond_be .line 954 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V .line 955 sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec; invoke-virtual {v2, p0, v8, v3}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 goto :goto_eb .line 956 :cond_be const-class v9, Ljava/lang/String; if-ne v2, v9, :cond_cc .line 957 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V .line 958 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseString()Ljava/lang/String; move-result-object v2 goto :goto_eb .line 959 :cond_cc sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne v2, v9, :cond_dc .line 960 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V .line 961 sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec; invoke-virtual {v2, p0, v8, v3}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 goto :goto_eb .line 963 :cond_dc iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig; invoke-virtual {v9, v2, v8}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer; move-result-object v2 .line 965 iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v9, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V .line 966 invoke-interface {v2, p0, v8, 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 v2 .line 969 :goto_eb invoke-virtual {v6, p1, v2}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V .line 972 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v2, v5, :cond_f6 goto/16 :goto_39 .line 976 :cond_f6 iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-ne v2, v4, :cond_39 .line 977 iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {p1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-void .end method .method public parseString()Ljava/lang/String; .registers 7 .line 1504 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/4 v1, 0x4 const/16 v2, 0x10 if-ne v0, v1, :cond_8d .line 1506 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v0 .line 1507 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v3, 0x2c const/16 v4, 0x1a if-ne v1, v3, :cond_37 .line 1508 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v3, 0x1 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1509 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v5, :cond_28 goto :goto_30 :cond_28 iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v4, v4, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1511 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_30 iput-char v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1512 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_8c .line 1513 :cond_37 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v2, 0x5d if-ne v1, v2, :cond_5f .line 1514 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x1 iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1515 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v3, :cond_4e goto :goto_56 :cond_4e iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1517 invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_56 iput-char v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1518 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v2, 0xf iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_8c .line 1519 :cond_5f iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-char v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v2, 0x7d if-ne v1, v2, :cond_87 .line 1520 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x1 iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1521 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v3, :cond_76 goto :goto_7e :cond_76 iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-object v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1523 invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_7e iput-char v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1524 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; const/16 v2, 0xd iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_8c .line 1526 :cond_87 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :goto_8c return-object v0 :cond_8d const/4 v1, 0x2 if-ne v0, v1, :cond_9c .line 1532 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v0 .line 1533 iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V return-object v0 .line 1537 :cond_9c invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object; move-result-object v0 if-nez v0, :cond_a4 const/4 v0, 0x0 return-object v0 .line 1543 :cond_a4 invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method protected popContext()V .registers 5 .line 1335 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext; iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; .line 1336 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 add-int/lit8 v1, v1, -0x1 .line 1337 iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I return-void .end method .method protected setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext; .registers 6 .line 1341 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-boolean v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z if-eqz v0, :cond_8 const/4 p1, 0x0 return-object p1 .line 1345 :cond_8 new-instance v0, Lcom/alibaba/fastjson/parser/ParseContext; invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/ParseContext;->(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)V iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; .line 1347 iget p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I add-int/lit8 p2, p1, 0x1 iput p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I .line 1348 iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; if-nez p2, :cond_20 const/16 p2, 0x8 .line 1349 new-array p2, p2, [Lcom/alibaba/fastjson/parser/ParseContext; iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; goto :goto_31 .line 1350 :cond_20 array-length p3, p2 if-lt p1, p3, :cond_31 .line 1351 array-length p3, p2 mul-int/lit8 p3, p3, 0x3 div-int/lit8 p3, p3, 0x2 .line 1352 new-array p3, p3, [Lcom/alibaba/fastjson/parser/ParseContext; .line 1353 array-length v0, p2 const/4 v1, 0x0 invoke-static {p2, v1, p3, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1354 iput-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; .line 1356 :cond_31 :goto_31 iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext; iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; aput-object p3, p2, p1 return-object p3 .end method .method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V .registers 3 .line 1328 iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer; iget-boolean v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z if-eqz v0, :cond_7 return-void .line 1331 :cond_7 iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext; return-void .end method .method public setDateFomrat(Ljava/text/DateFormat;)V .registers 2 .line 114 iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat; return-void .end method .method public setDateFormat(Ljava/lang/String;)V .registers 2 .line 109 iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String; const/4 p1, 0x0 .line 110 iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat; return-void .end method