0
나는 django-tastypie를 처음 사용합니다. 나는 다음과 같은 코드를 사용하여예쁜 json은 어떻게 작동합니까?
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()
를 API를 만들려고 그리고 그것은 아래의 출력,
{"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으로
이들은 모두 같습니다. – HennyH
답장을 보내 주셔서 감사합니다. 내 브라우저에서 json formate에 새로운 행이 없다는 것을 보았습니다 (즉, 선형 formate입니다). 하지만 나는 새로운 라인으로 json formate해야한다. – dhana
일반적으로 브라우저는 JSON을 필요한대로 포맷팅합니다. Chrome을 사용하는 경우 [JSONView] (https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc) 확장 프로그램을 사용하는 것이 좋습니다. 다른 브라우저와 동일한 기능이 있다고 확신합니다. JSON이 새로운 라인을 포함 할 필요가 있습니까? –