private function _end_string()
 {
     $popped = array_pop($this->_stack);
     if ($popped === self::STACK_KEY) {
         $this->_listener->key($this->_buffer);
         $this->_state = self::STATE_END_KEY;
     } elseif ($popped === self::STACK_STRING) {
         $this->_listener->value($this->_buffer);
         $this->_state = self::STATE_AFTER_VALUE;
     } else {
         throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number, "Unexpected end of string.");
     }
     $this->_buffer = '';
 }