Trong Django mẫu tôi đã in ra dữ liệu như thế này:JSON phân tích cú pháp - báo giá duy nhất bên trong tên
P.place = '{{place.json|safe}}';
Sau đó, trong tập tin JavaScript Tôi gọt nó như thế:
place = JSON.parse(P.place);
Tất cả mọi thứ là tốt cho dữ liệu như thế:
{"category": "Cars", "name": "Z"}
Do chuỗi trông giống như rằng:
P.place = '{"category": "Cars", "name": "Z"}'
Vì vậy, tôi có thể phân tích cú pháp bằng cách sử dụng JSON.parse phương thức phù thủy chấp nhận chuỗi là đầu vào.
Vấn đề là khi tôi nhận được dữ liệu như thế:
{"category": "Cars", "name": "Wojtek's Z"}
Bởi vì so với chuỗi đầu vào cho JSON phân tích cú pháp trông như thế:
'{"category": "Cars", "name": "Wojtek'
tôi không thể thoát khỏi dấu nháy đơn trong JSON chuỗi, vì sau đó JSON chuỗi trở thành không hợp lệ. Từ cùng một lý do, tôi không thể thay thế dấu ngoặc kép xung quanh bằng cách tăng gấp đôi và thoát khỏi dấu ngoặc kép trong chuỗi JSON.
Giải pháp của tôi trông như thế:
Trong template HTML:
P.place = {{place.json|safe}};
Sau đó trong JavaScript
var place = JSON.stringify(P.place);
place = JSON.parse(place);
Nó hoạt động, nhưng nó không phải là tối ưu giải pháp IMHO.
Làm thế nào để giải quyết vấn đề này theo cách cleaver hơn?
Bạn PHẢI báo giá dấu nháy trong JSON, không có cách nào xung quanh điều đó. Nhưng thông thường bạn có thể thoát khỏi nó, nếu định nghĩa đối tượng bằng cách sử dụng "\" ". Hoặc nếu bạn thích, thoát unicode \ u0027 (tôi nghĩ). – StaxMan
Bạn không thể làm điều đó, hãy xem jsonlint.com và json.org –
Bạn không thể làm gì? Kiểm tra đặc tả json. – StaxMan