code: def jsonHook(encoded):
          
          if '__Smi__' in encoded:
              return Smi._fromJSON(encoded['__Smi__'])
          elif '__MzmlScan__' in encoded:
              return MzmlScan._fromJSON(encoded['__MzmlScan__'])
          elif '__MzmlProduct__' in encoded:
              return MzmlProduct._fromJSON(encoded['__MzmlProduct__'])
          elif '__MzmlPrecursor__' in encoded:
              return MzmlPrecursor._fromJSON(encoded['__MzmlPrecursor__'])
          else:
              return encoded
docs: Custom JSON decoder that allows construction of a new ``Smi``
          instance from a decoded JSON object.
  
          :param encoded: a JSON decoded object literal (a dict)
  
          :returns: "encoded" or one of the these objects: :class:`Smi`,
              :class:`MzmlScan`, :class:`MzmlProduct`, :class:`MzmlPrecursor`