code: def fields2jsonschema(self, fields, ordered=False, partial=None):
          
          jsonschema = {"type": "object", "properties": OrderedDict() if ordered else {}}
  
          for field_name, field_obj in iteritems(fields):
              observed_field_name = self._observed_name(field_obj, field_name)
              property = self.field2property(field_obj)
              jsonschema["properties"][observed_field_name] = property
  
              if field_obj.required:
                  if not partial or (
                      is_collection(partial) and field_name not in partial
                  ):
                      jsonschema.setdefault("required", []).append(observed_field_name)
  
          if "required" in jsonschema:
              jsonschema["required"].sort()
  
          return jsonschema
docs: Return the JSON Schema Object given a mapping between field names and
          :class:`Field <marshmallow.Field>` objects.
  
          :param dict fields: A dictionary of field name field object pairs
          :param bool ordered: Whether to preserve the order in which fields were declared
          :param bool|tuple partial: Whether to override a field's required flag.
              If `True` no fields will be set as required. If an iterable fields
              in the iterable will not be marked as required.
          :rtype: dict, a JSON Schema Object