Tôi có đối tượng mô hình GeoDjango mà tôi không muốn tuần tự hóa thành json. Tôi làm điều này trong quan điểm của tôi:Sử dụng Python simplejson để trả về json đã được tạo trước
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')
Vấn đề là simplejson
coi a.area.geojson như là một chuỗi đơn giản, mặc dù nó là đẹp json trước tạo ra. Điều này có thể dễ dàng được sửa trong máy khách bằng cách eval()
'nhập chuỗi vùng, nhưng tôi muốn thực hiện nó một cách thích hợp. Tôi có thể nói simplejson
rằng một chuỗi cụ thể đã là json và nên được sử dụng như là (và không được trả về như một chuỗi đơn giản)? Hoặc có cách giải quyết khác không?
CẬP NHẬT Chỉ cần làm rõ, đây là json hiện trở lại:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
Thách thức là phải có "khu vực" là một từ điển json thay vì một chuỗi đơn giản.
"một chuỗi cụ thể đã là json và nên được sử dụng như là?" Nếu đó là trường hợp thì tại sao bạn làm simplejson gửi nó như vậy, tôi dint hiểu những gì bạn có nghĩa là đã json? Bạn có nghĩa là một dict? – Prashanth
Anh ta có nghĩa là a.area.geojson đã đọc được dữ liệu json nói '{"lat": 221.22, "lng": 192.222}'. Làm thế nào anh có thể tránh làm simplejson.dumps một lần nữa? – aatifh
Tôi đã cố gắng để làm rõ các văn bản, tôi nhận ra nó không phải là rất rõ ràng. – friism