La soumission des données de formulaire au format d'encodage JSON est une autre contribution majeure de HTML5 au développement et à l'évolution du WEB. Dans le passé, nos données de formulaire HTML étaient transmises côté serveur via une méthode clé-valeur. d'organisation des données. La forme est très primitive. La nouvelle méthode de soumission des données de formulaire au format JSON convertit toutes les données du formulaire au format JSON avec certaines spécifications, puis les transmet au serveur. Les données reçues par le serveur sont du code JSON qualifié directement utilisable. Comment déclarer la soumission d'un formulaire au format JSON
Tout le monde devrait savoir comment utiliser un formulaire pour télécharger un fichier. Cela nécessite d'ajouter l'instruction enctype="multipart/form-data" à la balise form en HTML, qui indique au navigateur d'envoyer les données du formulaire dans un fichier. mode de téléchargement. La déclaration du formulaire de soumission au format JSON est similaire à celle-ci. Elle s'écrit comme suit : enctype='application/json'.
Compatibilité avec les anciens navigateurs
La soumission de formulaires au format JSON est une toute nouvelle spécification en HTML5. Seuls les navigateurs modernes qui implémentent ces spécifications peuvent reconnaître la sémantique de enctype='application/json' et conditionner correctement les données du formulaire au format JSON. Pour certains anciens navigateurs, ainsi que pour les navigateurs qui n'ont pas encore implémenté ces normes, ils ne peuvent pas reconnaître ce que représente enctype='application/json', donc l'enctype du formulaire se dégradera automatiquement vers l'encodage par défaut application/x-www-form-urlencoded .Formater. Le code côté serveur peut déterminer comment recevoir les données en fonction de la valeur de enctype.
Exemple de format de formulaire de soumission au format d'encodage JSON
Exemple 1 Utilisation de base
Code XML/HTMLCopier le contenu dans le presse-papiers
- <formulaire enctype='application/json'>
-
<input nom='nom' valeur='Bender'>
-
<sélectionner nom='arrière' >
-
<option sélectionnée>Bitable< ;/option>
-
<option>Kickableoption>
-
sélectionner>
-
<entrée type='case à cocher' nom='brillant' coché>
-
formulaire>
-
- //Les données Json générées sont
- {
- "nom": "Bender"
- , "arrière": "mordable"
- , "brillant" : vrai
- }
Exemple 2 Lorsqu'il y a plusieurs champs de formulaire portant le même nom dans le formulaire, encodez-les sous forme de tableaux JSON
Code XML/HTMLCopier le contenu dans le presse-papiers
- <form enctype='application/json'>
-
<entrée type='numéro' nom='bouteille-sur-mur' valeur='1'>
-
<entrée type='numéro' nom='bouteille-sur-mur' valeur='2'>
-
<entrée type='numéro' nom='bouteille-sur-mur' valeur='3'>
-
formulaire>
-
- // 生成的Json数据是
- {
- "bouteille-sur-mur": [1, 2, 3]
- }
例3 表单域名称以数组形成出现的复杂结构
Code XML/HTML复制内容到剪贴板
- <form enctype='application/json'>
-
<input nom='animal[ espèce]' valeur='Dahut'>
-
<input nom='animal[ nom]' valeur='Hypatie'>
-
<input nom='enfants[ 1]' valeur='Thelma'>
-
<input nom='enfants[ 0]' valeur='Ashley'>
-
formulaire>
-
- // 生成的Json数据是
- {
- "animal": {
- "espèce": "Dahut"
- , "nom": "Hypatie"
- }
- , "enfants": ["Ashley", "Thelma"]
- }
例4 在上面的例子中,缺失的数组序号值将以null替代
Code XML/HTML复制内容到剪贴板
- <form enctype='application/json'>
-
<input nom='hearbeat[ 0]' valeur='thunk'>
-
<input nom='hearbeat[ 2]' valeur='thunk'>
-
formulaire>
-
- // 生成的Json数据是
- {
- "Hearbeat": ["thunk", null, "thunk"]
- }
例5 多重数组嵌套格式,嵌套层数无限制
Code XML/HTML复制内容到剪贴板
- <form enctype='application/json'>
-
<input nom='animal[ 0][espèce]' valeur='Dahut'>
-
<input nom='animal[ 0][nom]' valeur='Hypatie'>
-
<input nom='animal[ 1][espèce]' valeur='Felis Stultus'>
-
<input nom='animal[ 1][nom]' valeur='Billie'>
-
formulaire>
-
- // 生成的Json数据是
- {
- "animal": [
- {
- "espèce": "Dahut"
- , "nom": "Hypatie"
- }
- , {
- "espèce": "Felis Stultus"
- , "nom": "Billie"
- }
- ]
- }
例6真的,没有数组维度限制!
Code XML/HTML复制内容到剪贴板
- <formulaire enctype='application/json'>
-
<entrée nom='wow[ tel][profond][3][beaucoup][pouvoir][!]' valeur='Étonnant' >
-
formulaire>
-
- // Les données Json générées sont
- {
- "wow": {
- "tel": {
- "profond": [
-
, nul -
, nul -
, , { -
« beaucoup » : { -
"pouvoir": { -
« ! » : «Étonnant» -
-
-
-
} -
-
Exemple 7 Téléchargement de fichiers
-
Code XML/HTML- Copier le contenu dans le presse-papiers
- form enctype=enctype=enctype>
-
input type type name='file'
multiple-
multiple >
- form>
-
-
- // 假設你上傳了2個檔案, 產生的Json資料是:
- {
- "file": [
- {
-
"type": "text/plain",
"name": "dahut.txt",
- "body": "
REFBQUFBQUFIVVVVVVVVVVVVVCEhIQo },
- {
- "type": "text/plain",
-
"name": "litany.txt",
"body": "
SSBtdXN0IG5vdCBmZWFyLlxuRmV🎜>SSBtdXN0IG5vdCBmZWFyLlxuRmVhciBpcyB0aLmLpram
} -
] -
}