# File lib/json-schema/validator.rb, line 413
      def parse(s)
        if defined?(MultiJson)
          begin
            MultiJson.respond_to?(:adapter) ? MultiJson.load(s) : MultiJson.decode(s)
          rescue MultiJson::ParseError => e
            raise JSON::Schema::JsonParseError.new(e.message)
          end
        else
          case @@json_backend.to_s
          when 'json'
            begin
              JSON.parse(s, :quirks_mode => true)
            rescue JSON::ParserError => e
              raise JSON::Schema::JsonParseError.new(e.message)
            end
          when 'yajl'
            begin
              json = StringIO.new(s)
              parser = Yajl::Parser.new
              parser.parse(json) or raise JSON::Schema::JsonParseError.new("The JSON could not be parsed by yajl")
            rescue Yajl::ParseError => e
              raise JSON::Schema::JsonParseError.new(e.message)
            end
          else
            raise JSON::Schema::JsonParseError.new("No supported JSON parsers found. The following parsers are suported:\n * yajl-ruby\n * json")
          end
        end
      end