code: func (iter *Iterator) ReadString() (ret string) {
  	c := iter.nextToken()
  	if c == '"' {
  		for i := iter.head; i < iter.tail; i++ {
  			c := iter.buf[i]
  			if c == '"' {
  				ret = string(iter.buf[iter.head:i])
  				iter.head = i + 1
  				return ret
  			} else if c == '\\' {
  				break
  			} else if c < ' ' {
  				iter.ReportError("ReadString",
  					fmt.Sprintf(`invalid control character found: %d`, c))
  				return
  			}
  		}
  		return iter.readStringSlowPath()
  	} else if c == 'n' {
  		iter.skipThreeBytes('u', 'l', 'l')
  		return ""
  	}
  	iter.ReportError("ReadString", `expects " or n, but found `+string([]byte{c}))
  	return
  }
docs: // ReadString read string from iterator