ฉันจะแปลงสตริงที่อธิบายวัตถุเป็นสตริง JSON โดยใช้ JavaScript (หรือ jQuery) ได้อย่างไร
เช่น: แปลงสิ่งนี้ ( ไม่ใช่สตริง JSON ที่ถูกต้อง):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
เป็นนี้
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
ฉันชอบที่จะหลีกเลี่ยงการใช้eval()
ถ้าเป็นไปได้
data
-attrubute เช่นนี้<div data-object="{hello:'world'}"></div>
และฉันไม่ต้องการใช้อัญประกาศเดี่ยวใน HTML (ดังนั้นจึงอาจไม่น่าเชื่อถือ)
<div data-object='{"hello":"world"}'></div>
เป็น HTML ที่ถูกต้อง 100% (เครื่องหมายคำพูดเดี่ยวเกี่ยวข้องกับการไว้วางใจหรือไม่?) ถ้าคุณทำแบบนี้คุณก็JSON.parse
ทำได้และมันก็ใช้ได้ดี หมายเหตุ:ปุ่มจะต้องมีการเสนอราคาเช่นกัน
<div data-object="{\"hello\":\"world\"}"></div>
JSON หากคุณไม่ต้องการใช้ JSON ที่ถูกต้องในแอททริบิวคุณจะต้องจัดรูปแบบของคุณเองและแยกวิเคราะห์ด้วยตัวคุณเอง