Menyerahkan data borang dalam format pengekodan JSON ialah satu lagi sumbangan utama HTML5 kepada pembangunan dan evolusi WEB Pada masa lalu, data borang HTML kami telah dihantar pada bahagian pelayan melalui kaedah nilai kunci ini organisasi data. Bentuknya sangat primitif. Kaedah yang baru muncul untuk menyerahkan data borang dalam format JSON menukar semua data dalam borang kepada format JSON dengan spesifikasi tertentu, dan kemudian menghantarnya ke pelayan. Data yang diterima oleh pelayan adalah kod JSON yang layak yang boleh digunakan secara langsung. Cara mengisytiharkan penyerahan borang dalam format JSON
Semua orang harus biasa dengan cara menggunakan borang untuk memuat naik fail. Ia memerlukan penambahan pernyataan enctype="multipart/form-data" pada teg borang dalam HTML, yang memberitahu penyemak imbas untuk menghantar data borang dalam fail. mod muat naik. Pengisytiharan borang penyerahan format JSON adalah serupa dengan ini. Ia ditulis sebagai: enctype='application/json'.
Keserasian dengan penyemak imbas lama
Menyerahkan borang dalam format JSON ialah spesifikasi yang sangat baharu dalam HTML5 Hanya penyemak imbas moden yang melaksanakan spesifikasi ini boleh mengecam semantik enctype='application/json' dan membungkus data borang dengan betul ke dalam format JSON. Untuk sesetengah penyemak imbas lama, serta penyemak imbas yang belum lagi melaksanakan piawaian ini, mereka tidak dapat mengenali apa yang diwakili oleh enctype='application/json', jadi enctype borang akan secara automatik menurun kepada pengekodan lalai application/x-www-form-urlencoded . Kod sebelah pelayan boleh menentukan cara menerima data berdasarkan nilai enctype.
Format contoh borang penyerahan format pengekodan JSON
Contoh 1 Penggunaan asas
Kod XML/HTMLSalin kandungan ke papan keratan
- <borang enctype='application/json'>
-
<masukan nama='nama' nilai='Bender'>
-
<pilih nama='belakang' >
-
<pilihan dipilih>Bable< ;/pilihan>
-
<pilihan>Boleh ditendangpilihan>
-
pilih>
-
<input taip='kotak semak' nama='berkilat' ditandai>
-
borang>
-
- //Data Json yang dijana ialah
- {
- "nama": "Bender"
- , "belakang": "Boleh digigit"
- , "berkilat": benar
- }
Contoh 2 Apabila terdapat berbilang medan borang dengan nama yang sama dalam borang, kodkannya sebagai tatasusunan JSON
Kod XML/HTMLSalin kandungan ke papan keratan
- <borang enctype='application/json'>
-
<input taip='nombor' nama='botol di dinding' nilai='1'>
-
<input taip='nombor' nama='botol di dinding' nilai='2'>
-
<input taip='nombor' nama='botol di dinding' nilai='3'>
-
borang>
-
- // 生成的Json数据是
- {
- "botol di dinding": [1, 2, 3]
- }
例3 表单域名称以数组形成出现的复杂结构
Kod XML/HTML复制内容到剪贴板
- <borang enctype='application/json'>
-
<input nama='haiwan peliharaan[ spesies]' nilai='Dahut'>
-
<input nama='haiwan peliharaan[ nama]' nilai='Hypatia'>
-
<input nama='kanak-kanak[ 1]' nilai='Thelma'>
-
<input nama='kanak-kanak[ 0]' nilai='Ashley'>
-
borang>
-
- // 生成的Json数据是
- {
- "haiwan peliharaan": {
- "spesies": "Dahut"
- , "nama": "Hypatia"
- }
- , "kanak-kanak": ["Ashley", "Thelma"]
- }
例4 在上面的例子中,缺失的数组序号值将以null替代
Kod XML/HTML复制内容到剪贴板
- <borang enctype='application/json'>
-
<masukan nama=<🎜[>'dengar 0]' nilai='thunk'>
- <masukan nama=<🎜[>'dengar 2]' nilai='thunk'>
-
borang>
-
// 生成的Json数据是 -
{ -
"denyutan jantung": ["detik", null, "detik"] -
} -
例5 多重数组嵌套格式,嵌套层数无限制
Kod XML/HTML
复制内容到剪贴板
- <borang enctype='application/json'>
-
<input nama='haiwan peliharaan[ 0][spesies]' nilai='Dahut'>
-
<input nama='haiwan peliharaan[ 0][nama]' nilai='Hypatia'>
-
<input nama='haiwan peliharaan[ 1][spesies]' nilai='Felis Stultus'>
-
<input nama='haiwan peliharaan[ 1][nama]' nilai='Billie'>
-
borang>
-
- // 生成的Json数据是
- {
- "haiwan peliharaan": [
- {
- "spesies": "Dahut"
- , "nama": "Hypatia"
- }
- , {
- "spesies": "Felis Stultus"
- , "nama": "Billie"
- }
- ]
- }
例6 真的,没有数组维度限制!
Kod XML/HTML复制内容到剪贴板
- <borang enctype='application/json'>
-
<input nama='wow[ begitu][deep][3][banyak][kuasa][!]' nilai='Amaze' >
-
borang>
-
- // Data Json yang dihasilkan ialah
- {
- "wah": {
- "seperti": {
- "dalam": [
-
, batal -
, batal -
, , { -
“banyak”: { -
"kuasa": { -
“!”: “Memukau” -
-
-
-
} -
-
Contoh 7 muat naik fail
-
Kod XML/HTML- Salin kandungan ke papan keratan
- <form enctype='application/json'>
-
<Eingabe Typ='Datei' Name='Datei'mehrere>
-
Formular>
-
- // Angenommen, Sie laden 2 Dateien hoch, die generierten Json-Daten lauten:
- {
- „Datei“: [
-
„type“: „text/plain“, -
„Name“: „dahut.txt“, -
"body": "-
REFBQUFBQUFIVVVVVVVVVVVVCEhIQo="
}, -
- „type“: „text/plain“,
- „Name“: „litany.txt“,
- „Body“: „ SSBTDXN0IG5VDCBMZWFYLLLXVHCIBPCIBPCIB0AGUGBWLUZC1RWXSZIUCG
- =="
] -
} -
-