[英]How does pretty json works?
我是django-tastypie的新手。 当我尝试使用以下代码创建API时,
class PrettyJSONSerializer(Serializer):
json_indent = 4
def to_json(self, data, options=None):
print '.................'
options = options or {}
data = self.to_simple(data, options)
return simplejson.dumps(data, cls=json.DjangoJSONEncoder,
sort_keys=True, ensure_ascii=False, indent=self.json_indent)
class ShipmentResource(ModelResource):
class Meta:
queryset = Shipment.objects.all()
serializer = PrettyJSONSerializer()
它给出了如下所示的输出,
{"shipments": [{"awb_bol": "AWB#6", "carrier": "Yellow", "etd_eta": "2013-04-14", "from_to": "KKD-HYD", "id": 1, "mode": "Transport", "pieces": "10.00", "po": "PO-123", "resource_uri": "/api/shipment/1/", "status": "W", "weight": "25.00", "wr": "WR-123"}, {"awb_bol": "BWAB", "carrier": "Green", "etd_eta": "2013-04-23", "from_to": "AMP-HYD", "id": 3, "mode": "Transport", "pieces": "1.30", "po": "OP-123", "resource_uri": "/api/shipment/3/", "status": "O", "weight": "1.40", "wr": "RW 45"}]}
但是我只需要上面输出这个甲壳虫,
{
"shipments": [
{
"awb_bol": "AWB#6",
"carrier": "Yellow",
"etd_eta": "2013-04-14",
"from_to": "KKD-HYD",
"id": 1,
"mode": "Transport",
"pieces": "10.00",
"po": "PO-123",
"resource_uri": "/api/shipment/1/",
"status": "W",
"weight": "25.00",
"wr": "WR-123"
},
{
"awb_bol": "BWAB",
"carrier": "Green",
"etd_eta": "2013-04-23",
"from_to": "AMP-HYD",
"id": 3,
"mode": "Transport",
"pieces": "1.30",
"po": "OP-123",
"resource_uri": "/api/shipment/3/",
"status": "O",
"weight": "1.40",
"wr": "RW 45"
}
]
}
django-tastypie中是否提供任何默认功能。 请解决我的问题。 谢谢..
向simplejson.dumps添加分隔符= [',',':']参数
return simplejson.dumps(data, cls=json.DjangoJSONEncoder, sort_keys=True, ensure_ascii=False, indent=self.json_indent, separators=[',',': '])
这可以与标准的python json库一起很好地工作,但是由于它们的相似性,我认为它是相同的。
为了避免对页面的错误响应,我建议您将content_type ='application / json'添加到页面响应中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.