protected Object parse ( final String name ) { Object value = null ; char current = get ( ) ; switch ( current ) { // null case ' ' : read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; value = null ; break ; // NaN case ' ' : read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; value = Double . NaN ; break ; // true case ' ' : read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; value = true ; break ; // false case ' ' : read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; read ( ' ' ) ; value = false ; break ; // string case ' ' : case ' ' : value = parseString ( true ) ; break ; // number case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : value = parseNumber ( ) ; break ; // array case ' ' : value = parseArray ( name ) ; break ; // object case ' ' : value = parseObject ( name ) ; break ; default : throw new JSONParseException ( s , pos ) ; } return value ; }
Parse an unknown type .