I have the following code to convert common objects to JSON. On my dev box it works fine, but on production is simply does not and I can't really debug. Any suggestions?
import types class TestObject(): def __init__(self): self.dict = {'test class':'jaja'} self.name = 'testobject' self.lijst = ['ss','s','jaj'] self.bool = True class JsonEncoder(): ATTRIBUTES_TO_SKIP = ['__doc__','__module__'] @staticmethod def encode(obj): return JsonEncoder._encode(obj, type(obj)) @staticmethod def _encode(obj,type,baseNr = 0): typeCaseSwitch= { types.DictType: JsonEncoder.encodeDict ,types.InstanceType: JsonEncoder.encodeInstance ,types.NoneType: JsonEncoder.encodeNone ,types.StringType: JsonEncoder.encodeStr ,types.UnicodeType: JsonEncoder.encodeStr ,types.ListType: JsonEncoder.encodeList ,types.BooleanType: JsonEncoder.encodeBool ,types.IntType: JsonEncoder.encodeInt ,types.TupleType: JsonEncoder.encodeList } try: return typeCaseSwitch[type](obj) except Exception, inst: if len(obj.__class__.__bases__) > 0: baseType = obj.__class__.__bases__[++baseNr] return JsonEncoder._encode(obj, baseType) @staticmethod def encodeDict(obj): result = [] for key in obj: result.append(JsonEncoder.encode(key) + ':' + JsonEncoder.encode(obj[key])) return '{' + ','.join(result) + '}' @staticmethod def encodeList(obj): result = [] for item in obj: result.append(JsonEncoder.encode(item)) return '[' + ','.join(result) + ']' if len(result) > 0 else '[]' @staticmethod def encodeBool(obj): return str(obj).lower() @staticmethod def encodeInt(obj): return str(obj) @staticmethod def encodeStr(obj): #obj = obj.replace('/', r'\/') obj = obj.replace('"', r'\"') obj = obj.replace('\b', r'\b') obj = obj.replace('\f', r'\f') obj = obj.replace('\n', r'') obj = obj.replace('\r', r'') obj = obj.replace('\t', r'') return '"' + str(obj).replace('\\','\\\\').replace('\"','\\ \"') + '"' @staticmethod def encodeNone(obj): return 'null' @staticmethod def encodeInstance(obj): callableAttribs = [] for attrib in dir(obj): if not callable(getattr(obj, attrib)) and attrib not in JsonEncoder.ATTRIBUTES_TO_SKIP: callableAttribs.append('"' + attrib + '":' + JsonEncoder.encode(getattr(obj, attrib))) if len(callableAttribs) > 0: return '{' + ','.join(callableAttribs) + '}' --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---