Làm cách nào tôi có thể chuyển đổi một chuỗi mô tả một đối tượng thành một chuỗi JSON bằng JavaScript (hoặc jQuery)?
ví dụ: Chuyển đổi cái này ( KHÔNG phải là chuỗi JSON hợp lệ):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
vào đây:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Tôi rất thích tránh sử dụng eval()
nếu có thể.
data
-attrubute, như thế này: <div data-object="{hello:'world'}"></div>
và tôi không muốn sử dụng các trích dẫn đơn trong HTML (vì vậy có lẽ nó không đáng tin cậy)
<div data-object='{"hello":"world"}'></div>
là HTML hợp lệ 100% (trích dẫn đơn có liên quan gì đến việc tin tưởng nó hay không?). Nếu bạn làm theo cách này, bạn có thể làm được JSON.parse
và nó sẽ hoạt động tốt. Lưu ý: các phím cũng cần được trích dẫn.
<div data-object="{\"hello\":\"world\"}"></div>
. Nếu bạn không muốn sử dụng JSON hợp lệ trong thuộc tính, thì bạn sẽ phải tạo định dạng của riêng mình và tự phân tích nó.