Bagaimana untuk Menghuraikan JSON Santai Dengan Selamat Tanpa Menggunakan `eval`?

Mary-Kate Olsen
Lepaskan: 2024-10-31 05:44:02
asal
530 orang telah melayarinya

How to Safely Parse Relaxed JSON Without Using `eval`?

Menghuraikan JSON Santai Dengan Selamat

Menghuraikan JSON "santai" tanpa menggunakan fungsi eval yang berpotensi berbahaya adalah cabaran biasa apabila bekerja dengan data JSON yang mungkin tidak mematuhi sintaks JSON yang ketat. Walaupun JSON.parse() memerlukan kunci untuk dipetik, sesetengah senario memerlukan menghuraikan JSON dengan kunci tidak disebut untuk kemudahan atau sebab warisan.

Satu pendekatan untuk mengendalikan JSON "santai" dengan selamat ialah membersihkan JSON sebelum menghuraikannya. Menggunakan penggantian ungkapan biasa, anda boleh menukar kunci yang tidak disebut petikan kepada kunci yang dipetik sambil mengekalkan struktur JSON yang lain.

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');
Salin selepas log masuk

Dalam contoh ini, ungkapan biasa mencari kunci tidak disebut yang dikelilingi oleh petikan tunggal atau berganda pilihan , diikuti dengan kolon. Ia kemudian menggantikan padanan dengan sintaks kunci yang dipetik yang betul, memastikan rentetan JSON kini memenuhi format JSON yang betul.

Setelah rentetan JSON dibersihkan, anda boleh menghuraikannya dengan selamat menggunakan JSON.parse():

JSON.parse(correctJson);
Salin selepas log masuk

Kaedah ini membolehkan anda menghuraikan JSON "santai" dengan kunci yang tidak dipetik sambil mengekalkan keselamatan dan kebolehpercayaan penghuraian JSON tanpa memerlukan penghurai tersuai atau teknik tidak selamat seperti eval.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan JSON Santai Dengan Selamat Tanpa Menggunakan `eval`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!