Heim > Web-Frontend > js-Tutorial > Eingehende Analyse des JSON-Kodierungsformats zur Übermittlung des Formulars data_json

Eingehende Analyse des JSON-Kodierungsformats zur Übermittlung des Formulars data_json

WBOY
Freigeben: 2016-05-16 15:52:55
Original
1136 Leute haben es durchsucht

Die Übermittlung von Formulardaten im JSON-Codierungsformat ist ein weiterer wichtiger Beitrag von HTML5 zur Entwicklung und Weiterentwicklung des WEB. In der Vergangenheit wurden unsere HTML-Formulardaten serverseitig über die Schlüsselwertmethode übertragen Es mangelte an Verwaltung der Datenorganisation. Das Formular ist sehr primitiv. Die neu entstandene Methode zur Übermittlung von Formulardaten im JSON-Format konvertiert alle Daten im Formular in ein JSON-Format mit bestimmten Spezifikationen und übermittelt sie dann an den Server. Bei den vom Server empfangenen Daten handelt es sich um qualifizierten JSON-Code, der direkt verwendet werden kann.

So deklarieren Sie die Formularübermittlung im JSON-Format

Jeder sollte damit vertraut sein, wie man ein Formular zum Hochladen einer Datei verwendet. Dazu muss die Anweisung enctype="multipart/form-data" zum Formular-Tag in HTML hinzugefügt werden, die den Browser anweist, die Formulardaten im zu senden Datei-Upload-Modus. Die Deklaration des JSON-Format-Übermittlungsformulars ist wie folgt geschrieben: enctype='application/json'.

Kompatibilität mit älteren Browsern

Das Senden von Formularen im JSON-Format ist eine sehr neue Spezifikation in HTML5. Nur moderne Browser, die diese Spezifikationen implementieren, können die Semantik von enctype='application/json' erkennen und Formulardaten korrekt in das JSON-Format verpacken. Einige alte Browser sowie Browser, die diese Standards noch nicht implementiert haben, können nicht erkennen, was enctype='application/json' darstellt, sodass der Enctype des Formulars automatisch auf die Standardcodierung application/x-www-form-urlencoded herabgestuft wird . Formatieren. Serverseitiger Code kann basierend auf dem Wert von enctype bestimmen, wie Daten empfangen werden.

Formatbeispiel für ein Übermittlungsformular im JSON-Codierungsformat

Beispiel 1 Grundlegende Verwendung

<form enctype='application/json'>
 <input name='name' value='Bender'>
 <select name='hind'>
  <option selected>Bitable</option>
  <option>Kickable</option>
 </select>
 <input type='checkbox' name='shiny' checked>
</form>

// 生成的Json数据是
{
 "name":  "Bender"
, "hind":  "Bitable"
, "shiny": true
}

Nach dem Login kopieren

Beispiel 2 Wenn das Formular mehrere Formularfelder mit demselben Namen enthält, kodieren Sie diese als JSON-Arrays

<form enctype='application/json'>
 <input type='number' name='bottle-on-wall' value='1'>
 <input type='number' name='bottle-on-wall' value='2'>
 <input type='number' name='bottle-on-wall' value='3'>
</form>

// 生成的Json数据是
{
 "bottle-on-wall":  [1, 2, 3]
}

Nach dem Login kopieren

Beispiel 3 Eine komplexe Struktur, in der Formularfeldnamen als Arrays erscheinen

<form enctype='application/json'>
 <input name='pet[species]' value='Dahut'>
 <input name='pet[name]' value='Hypatia'>
 <input name='kids[1]' value='Thelma'>
 <input name='kids[0]' value='Ashley'>
</form>

// 生成的Json数据是
{
  "pet": {
    "species": "Dahut"
  ,  "name":   "Hypatia"
  }
,  "kids":  ["Ashley", "Thelma"]
}

Nach dem Login kopieren

Beispiel 4 Im obigen Beispiel wird der fehlende Array-Nummernwert durch Null

ersetzt
<form enctype='application/json'>
 <input name='hearbeat[0]' value='thunk'>
 <input name='hearbeat[2]' value='thunk'>
</form>

// 生成的Json数据是
{
  "hearbeat":  ["thunk", null, "thunk"]
}

Nach dem Login kopieren

Beispiel 5 Verschachtelungsformat für mehrere Arrays, unbegrenzte Anzahl von Verschachtelungsebenen

<form enctype='application/json'>
 <input name='pet[0][species]' value='Dahut'>
 <input name='pet[0][name]' value='Hypatia'>
 <input name='pet[1][species]' value='Felis Stultus'>
 <input name='pet[1][name]' value='Billie'>
</form>

// 生成的Json数据是
{
 "pet": [
  {
   "species": "Dahut"
  , "name":  "Hypatia"
  }
 , {
   "species": "Felis Stultus"
  , "name":  "Billie"
  }
 ]
}

Nach dem Login kopieren

Beispiel 6 Tatsächlich gibt es keine Beschränkung der Array-Dimension!

<form enctype='application/json'>
 <input name='wow[such][deep][3][much][power][!]' value='Amaze'>
</form>

// 生成的Json数据是
{
 "wow": {
  "such": {
   "deep": [
    null
   , null
   , null
   , {
     "much": {
      "power": {
       "!": "Amaze"
      }
     }
    }
   ]
  }
 }
}

Nach dem Login kopieren

Beispiel 7 Datei-Upload

<form enctype='application/json'>
 <input type='file' name='file' multiple>
</form>

// 假设你上传了2个文件, 生成的Json数据是:
{
 "file": [
  {
   "type": "text/plain",
   "name": "dahut.txt",
   "body": "REFBQUFBQUFIVVVVVVVVVVVVVCEhIQo="
  },
  {
   "type": "text/plain",
   "name": "litany.txt",
   "body": "SSBtdXN0IG5vdCBmZWFyLlxuRmVhciBpcyB0aGUgbWluZC1raWxsZXIuCg=="
  }
 ]
}
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage