Not sure if this is the best way but I wrote a class that all my models inherit.
from django.utils import simplejson from google.appengine.ext import db from google.appengine.api import users from datetime import * import string class json(): def getString(self): s= {} p = self.properties().iterkeys() for k in p: d = getattr(self,k) s[k] = k + ' : ' + str(type(d)) return simplejson.dumps(s) def getJson(self,include=None): s = {"id": self.key().id()} p = self.properties().iterkeys() if include is None: include = [] for k in p: d = getattr(self,k) #assume that d is an entity if it has a gql attr if hasattr(d,'gql') : s[k] = d.key().id() if include.count(k) > 0: for a in d.properties().iterkeys(): if hasattr(getattr(d,a),'gql') == False: if self.serialDateTime(getattr(d,a)) != False: s[a] = self.serialDateTime(getattr (d,a)) else: s[a] = getattr(d,a) elif self.serialDateTime(d) != False: s[k] = self.serialDateTime(d) elif hasattr(d,'_User__email'): s[k] = d.email() else: s[k] = d return simplejson.dumps(s) def serialDateTime(self, val): if isinstance(val, date): return val.strftime('%d-%m-%Y') elif isinstance(val, time): return val.strftime('%H:%M %p') else: return False def getTplObject(self): s = {"id": self.key().id()} p = self.properties().iterkeys() for k in p: d = getattr(self,k) if hasattr(d,'gql') : s[k] = d.key().id() elif hasattr(d,'_User__email'): s[k] = d.email() else: s[k] = d return s def getIterJson(self,obj): s = [] j = ',' for q in obj: s.append(q.getJson()) return '[' + j.join(s) + ']' --~--~---------~--~----~------------~-------~--~----~ 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 google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---