Ich habe ein GeoDjango-Modell-Objekt, das ich nicht zu json serialisieren möchte. Ich tue dies in meiner Sicht:Mit Python simplejson vorgenerierten json
lat = float(request.GET.get('lat'))
lng = float(request.GET.get('lng'))
a = Authority.objects.get(area__contains=Point(lng, lat))
if a:
return HttpResponse(simplejson.dumps({'name': a.name,
'area': a.area.geojson,
'id': a.id}),
mimetype='application/json')
Das Problem ist, dass simplejson
die a.area.geojson als einfacher String hält, auch wenn es schön vorab generierte json ist. Dies wird leicht im Client durch eval()
'in der Bereichs-Zeichenfolge behoben, aber ich möchte es richtig machen. Kann ich sagen simplejson
, dass eine bestimmte Zeichenfolge bereits Json ist und sollte verwendet werden, wie es ist (und nicht als eine einfache Zeichenfolge zurückgegeben)? Oder gibt es eine andere Problemumgehung?
UPDATE Nur um zu klären, ist dies die json ist zur Zeit zurückgegeben:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
Die Herausforderung ist „Bereich“ sein ein json Wörterbuch anstelle eines einfachen String zu haben.
"eine bestimmte Zeichenfolge ist bereits JSON und sollte verwendet werden, wie es ist?" Wenn das der Fall ist, warum machst du SimpleJson senden es als solche, ich verstehe nicht, was Sie schon JSON bedeuten? Du meinst ein Diktat? – Prashanth
Er bedeutet a.area.geojson ist bereits ein JSON Daten sagen '{"lat": 221.22, "lng": 192.222}'. Wie kann er vermeiden, simplejson.dumps wieder zu tun? – aatifh
Ich habe versucht, den Text zu klären, ich weiß, dass es nicht sehr klar war. – friism