title: Unable to decode a json string to a python object using jsonpickle
body: <p>My class structure is as follows -</p>
  
  <pre><code>class HelloWorld (object):
      def __init__(self, name, i, id):
          self.name = name
          self.i = i
          self.id = id
  </code></pre>
  
  <p>The I'm creating an object</p>
  
  <pre><code>p = HelloWorld('pj', 3456, '1234')
  </code></pre>
  
  <p>and passing this object to a definition, where I use <code>jsonpickle.encode</code> and <code>jsonpickle.decode</code> as follows</p>
  
  <pre><code>&gt;&gt;&gt;print(type(p)) 
      &lt;class 'HelloWorld'&gt;
   &gt;&gt;&gt;x = jsonpickle.encode(p)        
   &gt;&gt;&gt;print(x)
      {"i": 3456, "name": "pj", "py/object": "__builtin__.HelloWorld", "id": "1234"}
   &gt;&gt;&gt;y = jsonpickle.decode(x)
   &gt;&gt;&gt;print(type(y))
      &lt;class 'dict'&gt;
  </code></pre>
  
  <p>I don't understand why I'm not able to decode it back to the original object, even though the distinguishing <code>py/object</code> is also present.</p>
  
  <p>Can anyone please suggest what am I doing wrong?</p>
  
  <p>Adding the code which generate's the dynamic class for above mentioned use case.</p>
  
  <pre><code>def _create_pojo(self, pojo_class_name, param_schema):
  
      #extracting the properties from the parameter 'schema'        
      pojo_properties = param_schema['properties']
  
      #creating a list of property keys
      pojo_property_list = []
      for key in pojo_properties:
          pojo_property_list.append(key)
  
      source = \
          "class %s (object):\n" % ( pojo_class_name )       
      source += "    def __init__(self, %s" % ', '.join(pojo_property_list) +"):\n" #defining __init__ for the class
      for prop in pojo_property_list: #creating a variable in the __init__ method for each property in the property list
          source += "        self.%s = %s\n" % (prop, prop)
  
      #generating the class code
      class_code = compile( source, "&lt;generated class&gt;", "exec" )
      fakeglobals = {}
      eval( class_code, {"object" : object}, fakeglobals )
      result = fakeglobals[ pojo_class_name ]        
      result ._source = source
      pprint.pprint(source)       
  
      self._object_types[ pojo_class_name ] = result
      return result
  </code></pre>