var myJSONtext = '{ "name": "Violet", "occupation": "character" }'; var myJSONobj = JSON.parse(myJSONtext, function reviver(key, value) { var type; if (value && typeof value === 'object') { type = value.type; if (typeof type === 'string' && typeof window[type] === 'function') { return new (window[type])(value); } } return value; }); alert('Json>Obj:'+myJSONobj.name); alert('Obj>Json:'+JSON.stringify(myJSONobj, function replacer(key, value) { var type; if (value && typeof value === 'object') { type = value.type; if (typeof type === 'string' && typeof window[type] === 'function') { return new (window[type])(value); } } return value; }));