public Bus parseBusTimes( InputStream in ) throws JsonParseException {

        Bus bus = new Bus();
        JsonParser jp = null;

        try {
            jp = jsonFactory.createParser( in );

            while ( jp.nextToken() != JsonToken.END_OBJECT ) {
                String fieldName = jp.getCurrentName();
                if ( "line".equals( fieldName )) {
                    jp.nextToken();
                    bus.setNumber( jp.getText() );
                } else if ( "aimed_departure_time".equals( fieldName )) {
                    jp.nextToken();
                    bus.setTime( jp.getText() );
                }
            }

            if ( bus.getNumber() == null || bus.getTime() == null ) {
                throw new JsonParseException( TAG, "bus times not found." );
            }

            return bus;

        } catch ( IOException e ) {
            throw new JsonParseException( TAG, e.getMessage() );
        } finally {
            try {
                if ( jp != null ) jp.close();
                if ( in != null ) in.close();
            } catch ( IOException e ) {}
        }
    }