jQuery.parseJSON Membuang Ralat "JSON Tidak Sah" Disebabkan Petikan Tunggal yang Melarikan Diri dalam JSON
Masalah:
Apabila menggunakan jQuery.post() untuk mendapatkan semula objek JSON daripada pelayan, penghuraian gagal jika mana-mana nilai mengandungi petikan tunggal yang terlepas ('). Ini berlaku walaupun rentetan JSON sebaliknya sah.
Sebab:
Menurut spesifikasi JSON, hanya petikan berganda yang terlepas dibenarkan dalam rentetan, bukan petikan tunggal. Aksara petikan tunggal tidak perlu dilepaskan mengikut piawaian JSON.
Kemas kini:
Semasa perbincangan tentang JSON dalam "JavaScript: The Good Parts," Douglas Crockford, pencipta JSON, menjelaskan bahawa keputusan untuk hanya membenarkan petikan berganda yang terlepas dibuat untuk memudahkan kesalingoperasian. Dengan memerlukan penggunaan petikan berganda sahaja, ia menghapuskan potensi kekeliruan dan penamatan rentetan secara tidak sengaja.
Implikasi:
Ini bermakna mustahil untuk satu aksara petikan dalam rentetan JSON untuk menamatkan rentetan secara tidak sengaja. Oleh itu, melarikan diri daripada aksara petikan tunggal tidak diperlukan dalam spesifikasi JSON rasmi.
Pertimbangan Pelaksanaan:
Walaupun spesifikasi JSON tidak membenarkan petikan tunggal yang terlepas, pelaksanaan bazı, seperti org .json untuk Java, lebih lembut dan membenarkan penggunaannya. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini bukan perkara biasa, dan banyak pelaksanaan yang popular, termasuk yang digunakan oleh jQuery, mematuhi spesifikasi JSON rasmi dengan ketat dan menolak JSON yang mengandungi rentetan petikan tunggal dan/atau petikan tunggal yang terlepas.
Gelagat jQuery.parseJSON:
jQuery.parseJSON bergantung pada penghurai JSON asas yang disediakan oleh penyemak imbas atau perpustakaan yang dimuatkan seperti json2.js. Memandangkan pelaksanaan ini biasanya mematuhi spesifikasi JSON, ia tidak membenarkan petikan tunggal yang terlepas, dan oleh itu jQuery juga tidak.
Atas ialah kandungan terperinci Mengapakah jQuery.parseJSON Melemparkan Ralat \'JSON Tidak Sah\' Apabila Petikan Tunggal Terlepas Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!