У меня есть объект модели GeoDjango, который я не хочу сериализовать в 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')
Проблема в том, что simplejson
рассматривает a.area.geojson как простую строку, даже если это красивый предварительно сгенерированный json. Это легко исправить в клиенте с помощью eval()
'строки области, но я бы хотел сделать это правильно. Могу ли я сказать simplejson
, что конкретная строка уже является json и должна использоваться как есть (а не возвращаться как простая строка)? Или есть другой обходной путь?
UPDATE
Просто чтобы уточнить, это json, который в настоящее время возвращается:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
Задача состоит в том, чтобы "area" была словарём json вместо простой строки.