private void readArray ( final JsonLevel level ) throws EOFException { while ( true ) { readNextChar ( level ) ; if ( this . currentChar == JSON_ST ) { level . pushMode ( Mode . JSON_STRING_VALUE ) ; readValue ( level ) ; } else if ( this . currentChar == O_CURLY ) { if ( this . tree . isIntermediaryPath ( level . jsonPointer ( ) ) ) { this . pushLevel ( Mode . JSON_OBJECT ) ; return ; } level . pushMode ( Mode . JSON_OBJECT_VALUE ) ; readValue ( level ) ; } else if ( this . currentChar == O_SQUARE ) { if ( this . tree . isIntermediaryPath ( level . jsonPointer ( ) ) ) { this . pushLevel ( Mode . JSON_ARRAY ) ; return ; } else { level . pushMode ( Mode . JSON_ARRAY_VALUE ) ; readValue ( level ) ; } } else if ( this . currentChar == JSON_T ) { level . pushMode ( Mode . JSON_BOOLEAN_TRUE_VALUE ) ; readValue ( level ) ; } else if ( this . currentChar == JSON_F ) { level . pushMode ( Mode . JSON_BOOLEAN_FALSE_VALUE ) ; readValue ( level ) ; } else if ( this . currentChar == JSON_N ) { level . pushMode ( Mode . JSON_NULL_VALUE ) ; readValue ( level ) ; } else if ( isNumber ( this . currentChar ) ) { level . pushMode ( JSON_NUMBER_VALUE ) ; readValue ( level ) ; } else if ( this . currentChar == JSON_COMMA ) { level . updateIndex ( ) ; level . setArrayIndexOnJsonPointer ( ) ; } else if ( this . currentChar == C_SQUARE ) { popAndResetToOldLevel ( ) ; return ; } } }
Handle the logic for reading down a JSON Array .