- June 13, 2008
- serialize json serializer
- 2 (after 2 ratings)
The Django JSON encoder already extends the
simplejson encoder a little; this extends it more and gives an example of how to go about further extension.
newserializers (see the community aggregator today) will supercede this, but until then, it's useful.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
from django.core.serializers.json import DjangoJSONEncoder from django.db.models.query import QuerySet def maybe_call(x): if callable(x): return x() return x class JSONEncoder(DjangoJSONEncoder): '''An extended JSON encoder to handle some additional cases. The Django encoder already deals with date/datetime objects. Additionally, this encoder uses an 'as_dict' or 'as_list' attribute or method of an object, if provided. It also makes lists from QuerySets. ''' def default(self, obj): if hasattr(obj, 'as_dict'): return maybe_call(obj.as_dict) elif hasattr(obj, 'as_list'): return maybe_call(obj.as_list) elif isinstance(obj, QuerySet): return list(obj) return super(JSONEncoder, self).default(obj) json_encode = JSONEncoder().encode
More like this
- Updated: GeoJSON Serializer for GeoDjango (gis) by danielsokolowski 3 years, 8 months ago
- GeoJSON Serializer for GeoDjango (gis) by danielsokolowski 4 years, 2 months ago
- JSON encoding middleware by kcarnold 7 years, 1 month ago
- An alternative model serializer for django models by isaact 6 years, 9 months ago
- JSON encode ISO UTC datetime by japerk 6 years, 3 months ago