Dalam artikel ini, kami akan mengkaji manfaat Serialization Object, pelaksanaan pelayar semasa, dan membangunkan beberapa kod yang dapat membantu projek berasaskan Ajax anda.
Anggapkan kita mempunyai objek JavaScript yang agak kompleks yang ditakrifkan menggunakan notasi literal:
var obj1 = {
b1: true,
s1: "text string",
n1: 12345,
n2: null,
n3: undefined,
a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
o1: {
a: [3, 2, 1],
b: {
c: 42,
d: [ 3.14, 1.618 ]
}
}
};
Kami boleh mengakses mana -mana sifat objek dalam pelbagai cara:
obj1.s1; // returns "text string"
obj1["n1"]; // returns 12345
obj1.a1[6][1]; // returns 21
obj1["o1"]["b"]["c"]; // returns 42
Objek ini juga boleh diserahkan kepada fungsi dan kaedah JavaScript dan bukannya menentukan hujah individu. Barang berguna.
Walau bagaimanapun, bagaimana jika kita perlu menyimpan objek ini dalam kuki? Bagaimana jika kita perlu lulus objek ke perkhidmatan web melalui permintaan AJAX? Bagaimana jika perkhidmatan web itu mahu mengembalikan versi objek yang diubah suai? Jawapannya adalah bersiri:
Mungkin notasi rentetan terbaik yang boleh kita gunakan dalam JavaScript ialah JSON - Notasi Objek JavaScript. JSON adalah format interchange data ringan yang diilhamkan oleh notasi literal objek JavaScript seperti yang ditunjukkan di atas. JSON disokong oleh PHP dan banyak bahasa pelayan lain (rujuk json.org).
Terdapat dua kaedah JSON di JavaScript:
Malangnya, penyemak imbas yang sangat sedikit menyediakan kaedah ini. Sehingga kini, hanya Firefox 3.5, Internet Explorer 8.0 dan Chrome 3 beta menawarkan sokongan asli. Beberapa perpustakaan JavaScript menawarkan alat JSON mereka sendiri (seperti Yui
) tetapi ramai yang tidak (termasuk jQuery).
Walau bagaimanapun, semuanya tidak hilang - JavaScript adalah fleksibel dan kami boleh melaksanakan kaedah JSON Stringify dan Purse apabila pelayar memerlukannya.
Di bahagian atas kod kami, kami akan membuat pemboleh ubah JSON yang menunjuk kepada objek JSON asli atau objek kosong jika tidak tersedia:
var JSON = JSON || {};
Kod JSON.Stringify sedikit lebih kompleks:
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = '"'+obj+'"';
return String(obj);
}
else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n]; t = typeof(v);
if (t == "string") v = '"'+v+'"';
else if (t == "object" && v !== null) v = JSON.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
Jika json.stringify tidak tersedia, kami menentukan fungsi baru yang menerima parameter OBJ tunggal. Parameter ini boleh menjadi satu nilai, array, atau objek kompleks seperti OBJ1 di atas.
Kod mengkaji jenis objek. Nilai tunggal dikembalikan dengan serta -merta dan hanya rentetan yang diubahsuai untuk meletakkan petikan di sekitar nilai.
Sekiranya array atau objek diluluskan, kod itu melangkah melalui setiap harta:
Jika sakit otak anda, anda akan gembira mengetahui bahawa kod JSON.Parse lebih mudah:
var obj1 = {
b1: true,
s1: "text string",
n1: 12345,
n2: null,
n3: undefined,
a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
o1: {
a: [3, 2, 1],
b: {
c: 42,
d: [ 3.14, 1.618 ]
}
}
};
Ini menukarkan rentetan JSON ke objek menggunakan eval ().
Sebelum anda tergesa -gesa untuk melaksanakan fungsi Serialization JSON dalam semua projek anda, terdapat beberapa gotchas:
Saya harap anda dapati kod itu berguna. Jangan ragu untuk menggunakannya dalam projek anda sendiri.
Fail sumber:
Bacaan Berkaitan:
akan datang: Aplikasi berguna Serialization JSON ...
soalan yang sering ditanya mengenai siri JavaScript JSON
Apakah Serialisasi JSON dalam JavaScript? Ini dilakukan dengan menggunakan kaedah JSON.Stringify (). Rentetan JSON yang dihasilkan boleh disimpan atau dihantar ke pelayan. Ini adalah proses penting dalam pembangunan web kerana ia membolehkan data dengan mudah dipindahkan antara klien dan pelayan. Berikut adalah contoh mudah:
biarkan obj = {name: "John", umur: 30, bandar: "new york"};
biarkan myjson = json.stringify (obj); 'Myjson'.Bolehkah saya bersiri di JavaScript? Kaedah ini berfungsi bukan sahaja dengan susunan mudah, tetapi juga dengan tatasusunan objek. Berikut adalah contoh:
let arr = [1, 2, 3, 4];
biarkan myjson = json.stringify (arr);
bagaimana saya menafikan rentetan JSON dalam javascript?
Deserialization adalah proses menukar rentetan JSON kembali ke objek JavaScript. Ini dilakukan dengan menggunakan kaedah JSON.Parse (). Berikut adalah contoh:
biarkan myjson = '{"name": "John", "umur": 30, "City": "New York"}'; Json.parse ().
Apa yang berlaku jika saya cuba untuk bersiri fungsi dalam JavaScript? Ini kerana JSON adalah format data dan tidak menyokong kebolehan pelaksanaan JavaScript. Ini membolehkan anda menyaring nilai-nilai atau mengubahnya semasa proses bersiri. Ini dilakukan dengan menyediakan nombor sebagai hujah ketiga kepada json.stringify (), yang mewakili bilangan ruang yang digunakan untuk lekukan. Secara lalai, apabila anda bersiri objek tarikh dalam JavaScript, ia akan ditukar kepada rentetan dalam format ISO. Apabila anda menafikannya, ia tidak akan ditukar secara automatik ke objek tarikh. Anda perlu menukarnya secara manual dengan menggunakan pembina tarikh baru (). Apabila objek mempunyai kaedah tojson (), json.stringify () memanggilnya dan bersiri nilai yang dikembalikan, bukannya objek asal. JavaScript boleh mewakili nombor dengan tepat sehingga 2^53 - 1. Jika anda perlu bersiri nombor yang lebih besar, anda mungkin perlu menukarnya ke rentetan terlebih dahulu untuk mengelakkan kehilangan ketepatan.
Atas ialah kandungan terperinci Serialization JSON Cross-Browser di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JavaandjavascriptaredistinctLanguages: javaisusedforenterpriseandMobileApps, whilvascriptisforinteractivewebpages.1) javaisco mpiled, statiktyped, andrunsonjvm.2) javascriptisinterinterpreted, dinamicallytyped, andrunsinbrowsersornode.js.3) javausesoopwithcl

Jenis data teras JavaScript adalah konsisten dalam penyemak imbas dan node.js, tetapi ditangani secara berbeza dari jenis tambahan. 1) Objek global adalah tetingkap dalam penyemak imbas dan global di Node.js. 2) Objek penampan unik Node.js, digunakan untuk memproses data binari. 3) Terdapat juga perbezaan prestasi dan pemprosesan masa, dan kod perlu diselaraskan mengikut persekitaran.

JavaScriptusestWotypesofcomments: Single-line (//) danMulti-line (//)

Perbezaan utama antara Python dan JavaScript ialah sistem jenis dan senario aplikasi. 1. Python menggunakan jenis dinamik, sesuai untuk pengkomputeran saintifik dan analisis data. 2. JavaScript mengamalkan jenis yang lemah dan digunakan secara meluas dalam pembangunan depan dan stack penuh. Kedua -duanya mempunyai kelebihan mereka sendiri dalam pengaturcaraan dan pengoptimuman prestasi yang tidak segerak, dan harus diputuskan mengikut keperluan projek ketika memilih.

Sama ada untuk memilih Python atau JavaScript bergantung kepada jenis projek: 1) Pilih Python untuk Sains Data dan Tugas Automasi; 2) Pilih JavaScript untuk pembangunan front-end dan penuh. Python disukai untuk perpustakaannya yang kuat dalam pemprosesan data dan automasi, sementara JavaScript sangat diperlukan untuk kelebihannya dalam interaksi web dan pembangunan stack penuh.

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.
