Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengekodkan Objek JavaScript dengan Cekap ke dalam Rentetan Pertanyaan?

Bagaimanakah Saya Boleh Mengekodkan Objek JavaScript dengan Cekap ke dalam Rentetan Pertanyaan?

DDD
DDDasal
2024-12-06 11:45:12803semak imbas

How Can I Efficiently Encode a JavaScript Object into a Query String?

Pengekodan Objek JavaScript yang Cekap untuk Rentetan Pertanyaan

Pengekodan objek JavaScript ke dalam rentetan untuk penghantaran melalui permintaan GET boleh menjadi tugas yang membosankan. Syukurlah, terdapat penyelesaian JavaScript mudah yang tidak bergantung pada perpustakaan pihak ketiga atau jQuery.

Begini cara anda boleh melakukannya:

serialize = function(obj) {
  var str = [];
  for (var p in obj)
    if (obj.hasOwnProperty(p)) {
      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
    }
  return str.join("&");
}

Fungsi ini mengambil objek JavaScript sebagai input dan mengembalikan rentetan yang dikodkan. Proses pengekodan melibatkan:

  • Menyatukan sifat objek
  • Pengekodan URL kedua-dua nama dan nilai harta
  • Menggabungkan pasangan yang dikodkan dengan ampersand (&) pemisah

Untuk menggambarkan, pertimbangkan pengekodan yang berikut objek:

{
  foo: "hi there",
  bar: "100%"
}

Menggunakan fungsi bersiri:

console.log(serialize({
  foo: "hi there",
  bar: "100%"
}));

Akan mengeluarkan rentetan yang dikodkan berikut:

foo=hi%20there&bar=100%25

Rentetan yang dikodkan ini kemudiannya boleh dihantar sebagai rentetan pertanyaan dalam permintaan GET tanpa sebarang kerumitan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Objek JavaScript dengan Cekap ke dalam Rentetan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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