我有一个班级(非模特)
from django.utils import simplejson
class myclass:
def __init(self):
self.x = "1877"
self.y = "1410"
self.z = "400"
self.w = "67"
self.a ="0"
self.b = "1"
self.c = "319996"
self.d ="187702"
self.t = "168000"
def ajaxRes(request):
mobj = myclass;
json_str = simplejson.dumps(mobj)
return HttpResponse(json_str,mimetype ="application/x-javascript")
我遇到了以下错误:
class myapp.views.myclass at 0x7faadc020c18> is not JSON serializable
我也尝试过django的序列化程序,但它似乎只适用于模型类
from django.core import serializers
data = serializers.serialize("json", mobj.objects.all())
抛出mobj
没有任何属性对象的错误。
如何在django [json format]
中序列化一个班级。
答案 0 :(得分:4)
您需要准备simplejson序列化程序来处理您的类:
from django.utils import simplejson
class HandleMyClass(simplejson.JSONEncoder):
""" simplejson.JSONEncoder extension: handle MyClass"""
def default(self, obj):
if isinstance(obj, MyClass):
return obj.__dict__
return simplejson.JSONEncoder.default(self, obj)
data = simplejson.dumps( dictionary, cls=HandleMyClass )