【问题标题】:Serialize non model class in django在 django 中序列化非模型类
【发布时间】:2013-01-07 23:09:29
【问题描述】:

我有一个班级(非模型)

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] 中序列化一个类。

【问题讨论】:

标签: django json serialization jsonserializer


【解决方案1】:

你需要准备 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 )

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 2017-10-20
    • 1970-01-01
    • 2016-04-07
    • 2012-11-16
    • 2011-08-26
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多