Python Tastypie和JSON字段序列化问题
因此,我阅读了以下帖子,但没有找到答案: 我的模型使用JSONField来存储任意数据Python Tastypie和JSON字段序列化问题,python,django,tastypie,Python,Django,Tastypie,因此,我阅读了以下帖子,但没有找到答案: 我的模型使用JSONField来存储任意数据 class Task(models.Model): """ Execution of a Test """ results = JSONField(max_length=1000, blank=True) 在python shell中,我可以打印此字段,它呈现以下内容: [{"name": "tata", "result": "toto"}] 我修改了dehydra
class Task(models.Model):
"""
Execution of a Test
"""
results = JSONField(max_length=1000, blank=True)
在python shell中,我可以打印此字段,它呈现以下内容:
[{"name": "tata", "result": "toto"}]
我修改了dehydrate方法以删除unicode,但得到以下结果:
**Dehydrate Method:**
def dehydrate_results(self, bundle):
results = json.dumps(bundle.obj.results)
return results
**Tastypie Result**
"results": "[{\"name\": \"Cash In\", \"result\": \"toto\"}]"
我无法在我的javascript应用程序中使用此对象。。。也许您可以向我解释如何从tastypie获得正常的json输出:
**Wanted Tastypie Result**
"results": [{"name": "Cash In", "result": "toto"}]
谢谢。字符串值是简单的json编码,因此您需要在js中对其进行解码:
JSON.parse("[{\"name\": \"Cash In\", \"result\": \"toto\"}]")
这将为您提供正确的对象列表。字符串值是简单编码的json,因此您需要在js中对其进行解码:
JSON.parse("[{\"name\": \"Cash In\", \"result\": \"toto\"}]")
这将为您提供正确的对象列表。如果我没有弄错的话,您不需要提供自定义脱水字段,因为bundle.obj.results已经是数据库中的反序列化对象 只需根据存储的数据将结果字段类型指定为tastypie.fields.DictField或tastypie.fields.ListField,而不是提供自定义的detercheme_results函数 例如
如果我没有弄错的话,您不需要提供自定义的dehydrate字段,因为bundle.obj.results已经是数据库中的反序列化对象 只需根据存储的数据将结果字段类型指定为tastypie.fields.DictField或tastypie.fields.ListField,而不是提供自定义的detercheme_results函数 例如
哇,我非常感谢你:ListField工作得非常好!迪克菲尔德的工作也同样出色。为我节省了至少一个小时的工作。谢谢,我非常感谢你:ListField工作得非常好!迪克菲尔德的工作也同样出色。为我节省了至少一个小时的工作。谢谢