Rumah hujung hadapan web tutorial js Analisis langkah berjaga-jaga untuk menggunakan eval untuk menghuraikan JSON dalam kemahiran JS_javascript

Analisis langkah berjaga-jaga untuk menggunakan eval untuk menghuraikan JSON dalam kemahiran JS_javascript

May 16, 2016 pm 03:32 PM
eval js json Perkara yang perlu diperhatikan menghuraikan

Artikel ini menganalisis secara terperinci langkah berjaga-jaga untuk menggunakan eval untuk menghuraikan JSON dalam JS. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Secara amnya terdapat dua cara untuk menghuraikan rentetan JSON ke dalam format data JSON dalam JS:

1. Salah satunya ialah menggunakan fungsi eval().

2. Gunakan objek Fungsi untuk melakukan analisis pulangan.

Gunakan fungsi eval untuk menghuraikan, dan gunakan setiap kaedah jquery untuk melintasi

Gunakan jquery untuk menghuraikan data JSON Sebagai objek penghantaran permintaan asynchronous jquery, hasil yang dikembalikan selepas permintaan jquery adalah objek json Apa yang dipertimbangkan di sini ialah bentuk rentetan yang dikembalikan oleh pelayan dalam bentuk JSON -in seperti JSONObject Objek JSON adalah serupa dengan ini dan tidak akan dijelaskan di sini.

Set rentetan JSON pertama kali diberikan di sini Set rentetan adalah seperti berikut:

Kod adalah seperti berikut:

var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'北京市'},
{name:'6102',value:'天津市'},
{name:'6103',value:'上海市'},
{name:'6104',value:'重庆市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";

Salin selepas log masuk

Berdasarkan jenis data yang diperoleh secara tak segerak oleh jquery - objek dan rentetan json, di sini kami memperkenalkan kaedah pemprosesan hasil yang diperoleh dalam dua cara.

1. Untuk rentetan JSON yang dikembalikan oleh pelayan, jika permintaan asynchronous jquery tidak mempunyai perihalan jenis, atau diterima sebagai rentetan, maka kaedah ini tidak terlalu menyusahkan, iaitu, meletakkan rentetan dalam eval () dilaksanakan sekali. Kaedah ini juga sesuai untuk mendapatkan objek json menggunakan javascipt biasa Berikut adalah contoh:

var dataObj=eval("("+data+")");//转换为json对象
Red rose为什么要 eval这里要添加 “("("+data+")");//”呢?

Salin selepas log masuk

Sebabnya ialah: masalah eval itu sendiri. Memandangkan json bermula dan berakhir dengan "{}", ia akan diproses sebagai blok pernyataan dalam JS, jadi ia mesti dipaksa untuk ditukar menjadi ungkapan.

Tujuan menambah kurungan adalah untuk memaksa fungsi eval menukar ungkapan dalam kurungan kepada objek dan bukannya melaksanakannya sebagai pernyataan semasa memproses kod JavaScript. Contohnya, jika objek literal {} tidak ditambah dengan kurungan luar, maka eval akan mengenali pendakap sebagai tanda mula dan tamat blok kod JavaScript dan {} akan dianggap untuk melaksanakan pernyataan kosong. Jadi dua keputusan pelaksanaan berikut adalah berbeza:

alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

Salin selepas log masuk

Tulisan seperti ini boleh dilihat di mana-mana di JS.

Contohnya: (function()) {}(); semasa melakukan operasi penutupan, dsb.

alert(dataObj.root.length);//输出root的子对象数量 
$.each(dataObj.root,fucntion(idx,item){ 
if(idx==0){ 
return true; 
} 
//输出每个root子对象的名称和值 
alert("name:"+item.name+",value:"+item.value); 
})

Salin selepas log masuk

Nota: Untuk js umum menjana objek json, anda hanya perlu menggantikan kaedah $.each() dengan pernyataan for dan yang lain kekal tidak berubah.

2. Untuk rentetan JSON yang dikembalikan oleh pelayan, jika permintaan asynchronous jquery menetapkan jenis (biasanya atribut konfigurasi ini) kepada "json", atau menggunakan kaedah $.getJSON() untuk mendapatkan pulangan pelayan, maka ada kaedah eval ( ) tidak perlu, kerana hasil yang diperoleh pada masa ini sudah menjadi objek json, anda hanya perlu memanggil objek secara langsung Di sini, kaedah $.getJSON digunakan sebagai contoh untuk menggambarkan kaedah pemprosesan data:

$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){ 
//此处返回的data已经是json对象 
//以下其他操作同第一种情况 
$.each(data.root,function(idx,item){ 
if(idx==0){ 
return true;//同countinue,返回false同break 
} 
alert("name:"+item.name+",value:"+item.value); 
}); 
});

Salin selepas log masuk

Apa yang memerlukan perhatian khusus di sini ialah kaedah eval() dalam kaedah 1 melaksanakan rentetan secara dinamik (mungkin skrip js), yang boleh menyebabkan isu keselamatan sistem dengan mudah. Oleh itu, anda boleh menggunakan beberapa perpustakaan skrip klien pihak ketiga yang memintas eval(). Contohnya, JSON dalam JavaScript menyediakan perpustakaan skrip tidak lebih daripada 3k.

Kaedah penghuraian kedua ialah menggunakan objek Fungsi Aplikasi tipikalnya ialah penghuraian data yang dikembalikan seperti kejayaan di bawah kaedah AJAX dalam JQUERY

var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();

Salin selepas log masuk

Data pada masa ini ialah objek json yang akan dihuraikan.

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Wuthering WavesPengenalan kepada perkara yang memerlukan perhatian semasa ujian Wuthering WavesPengenalan kepada perkara yang memerlukan perhatian semasa ujian Mar 13, 2024 pm 08:13 PM

Semasa ujian Mingchao, sila elakkan naik taraf sistem, tetapan semula kilang dan penggantian alat ganti untuk mengelakkan kehilangan maklumat dan log masuk permainan yang tidak normal. Peringatan khas: Tiada saluran rayuan semasa tempoh ujian, jadi sila kendalikannya dengan berhati-hati. Pengenalan kepada perkara yang memerlukan perhatian semasa ujian Mingchao: Jangan tingkatkan sistem, pulihkan tetapan kilang, ganti komponen peralatan, dsb. Nota: 1. Sila tingkatkan sistem dengan teliti semasa tempoh ujian untuk mengelakkan kehilangan maklumat. 2. Jika sistem dikemas kini, ia mungkin menyebabkan masalah tidak dapat log masuk ke permainan. 3. Pada peringkat ini, saluran rayuan masih belum dibuka Pemain dinasihatkan untuk memilih sama ada untuk menaik taraf mengikut budi bicara mereka sendiri. 4. Pada masa yang sama, satu akaun permainan hanya boleh digunakan dengan satu peranti Android dan satu PC. 5. Adalah disyorkan agar anda menunggu sehingga ujian selesai sebelum menaik taraf sistem telefon mudah alih atau memulihkan tetapan kilang atau menggantikan peranti.

Petua pengoptimuman prestasi untuk menukar tatasusunan PHP kepada JSON Petua pengoptimuman prestasi untuk menukar tatasusunan PHP kepada JSON May 04, 2024 pm 06:15 PM

Kaedah pengoptimuman prestasi untuk menukar tatasusunan PHP kepada JSON termasuk: menggunakan sambungan JSON dan fungsi json_encode() menambah pilihan JSON_UNESCAPED_UNICODE untuk mengelakkan aksara melarikan diri menggunakan penimbal untuk meningkatkan prestasi pengekodan JSON; Pustaka pengekodan JSON.

Bagaimana untuk memulakan siaran langsung di Douyin buat kali pertama? Apakah yang perlu anda perhatikan semasa menyiarkan secara langsung buat kali pertama? Bagaimana untuk memulakan siaran langsung di Douyin buat kali pertama? Apakah yang perlu anda perhatikan semasa menyiarkan secara langsung buat kali pertama? Mar 22, 2024 pm 04:10 PM

Dengan kebangkitan platform video pendek, Douyin telah menjadi bahagian yang sangat diperlukan dalam kehidupan seharian ramai orang. Penyiaran langsung di Douyin dan berinteraksi dengan peminat adalah impian ramai pengguna. Jadi, bagaimanakah anda memulakan siaran langsung di Douyin buat kali pertama? 1. Bagaimana untuk memulakan siaran langsung di Douyin buat kali pertama? 1. Persediaan Untuk memulakan siaran langsung, anda perlu memastikan bahawa akaun Douyin anda telah melengkapkan pengesahan nama sebenar. Anda boleh menemui tutorial pengesahan nama sebenar dalam "Saya" -> "Tetapan" -> "Akaun dan Keselamatan" dalam APP Douyin. Selepas melengkapkan pengesahan nama sebenar, anda boleh memenuhi syarat siaran langsung dan memulakan siaran langsung pada platform Douyin. 2. Mohon kebenaran siaran langsung Selepas memenuhi syarat siaran langsung, anda perlu memohon kebenaran siaran langsung. Buka APP Douyin, klik "Saya" -> "Pusat Pencipta" -> "Terus

Analisis makna dan penggunaan titik tengah dalam PHP Analisis makna dan penggunaan titik tengah dalam PHP Mar 27, 2024 pm 08:57 PM

[Analisis makna dan penggunaan titik tengah dalam PHP] Dalam PHP, titik tengah (.) ialah operator yang biasa digunakan untuk menyambung dua rentetan atau sifat atau kaedah objek. Dalam artikel ini, kami akan menyelami makna dan penggunaan titik tengah dalam PHP, menggambarkannya dengan contoh kod konkrit. 1. Operator titik tengah rentetan Concatenate Penggunaan yang paling biasa dalam PHP adalah untuk menggabungkan dua rentetan. Dengan meletakkan . antara dua rentetan, anda boleh menyambungkannya untuk membentuk rentetan baharu. $string1=&qu

Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON? Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON? May 06, 2024 pm 10:09 PM

Anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahserilangan JSON: Pensirilan: @JsonIgnore: Abaikan harta @JsonProperty: Tentukan nama @JsonGetter: Gunakan kaedah get @JsonSetter: Gunakan kaedah yang ditetapkan Deserialization: @JsonIgnoreProperties: Abaikan harta @ JsonProperty: Nyatakan nama @JsonCreator: Gunakan pembina @JsonDeserialize: Logik tersuai

Analisis ciri baharu Win11: Bagaimana untuk melangkau log masuk ke akaun Microsoft Analisis ciri baharu Win11: Bagaimana untuk melangkau log masuk ke akaun Microsoft Mar 27, 2024 pm 05:24 PM

Analisis ciri baharu Win11: Cara melangkau log masuk ke akaun Microsoft Dengan keluaran Windows 11, ramai pengguna mendapati ia membawa lebih banyak kemudahan dan ciri baharu. Walau bagaimanapun, sesetengah pengguna mungkin tidak suka sistem mereka terikat pada akaun Microsoft dan ingin melangkau langkah ini. Artikel ini akan memperkenalkan beberapa kaedah untuk membantu pengguna melangkau log masuk ke akaun Microsoft dalam Windows 11 dan mencapai pengalaman yang lebih peribadi dan autonomi. Mula-mula, mari kita fahami sebab sesetengah pengguna enggan log masuk ke akaun Microsoft mereka. Di satu pihak, sesetengah pengguna bimbang bahawa mereka

Hubungan antara js dan vue Hubungan antara js dan vue Mar 11, 2024 pm 05:21 PM

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

See all articles