json にシリアライズしたくない GeoDjango モデル オブジェクトがあります。私はこれを私の見解で行います:
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')
問題はsimplejson
、a.area.geojson が美しい事前生成された json であるにもかかわらず、単純な文字列と見なされることです。これはクライアントでeval()
area-string を 'ing することで簡単に修正できますが、適切に修正したいと考えています。simplejson
特定の文字列が既に json であり、そのまま使用する必要がある (単純な文字列として返されない)ことを教えてもらえますか? または別の回避策はありますか?
UPDATE 明確にするために、これは現在返されているjsonです:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
課題は、「area」を単純な文字列ではなく json 辞書にすることです。