# File lib/jmespath/nodes/field.rb, line 49
      def visit(obj)
        @keys.reduce(obj) do |value, key|
          if value.is_a?(Array) && key.is_a?(Integer)
            value[key]
          elsif value.is_a?(Hash)
            if !(v = value[key]).nil?
              v
            elsif (sym = @key_syms[key]) && !(v = value[sym]).nil?
              v
            end
          elsif value.is_a?(Struct) && value.respond_to?(key)
            value[key]
          end
        end
      end