我有一个不想序列化为 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。这很容易通过 'ing 区域字符串在客户端中修复eval()
,但我想正确地做到这一点。我可以告诉simplejson
一个特定的字符串已经是 json 并且应该按原样使用(而不是作为简单字符串返回)吗?还是有其他解决方法?
更新 澄清一下,这是当前返回的 json:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
挑战在于让“区域”成为一个 json 字典而不是一个简单的字符串。