private Object readJSON ( ) throws JSONException { switch ( read ( 3 ) ) { case zipObject : return readObject ( ) ; case zipArrayString : return readArray ( true ) ; case zipArrayValue : return readArray ( false ) ; case zipEmptyObject : return new JSONObject ( ) ; case zipEmptyArray : return new JSONArray ( ) ; case zipTrue : return Boolean . TRUE ; case zipFalse : return Boolean . FALSE ; default : return JSONObject . NULL ; } }
Read a JSON value . The type of value is determined by the next 3 bits .