Dieses Mal werde ich Ihnen die Methode zum Konvertieren des assoziativen Arrays des Ajax-Frontends von JSON in das Backend vorstellen. Was sind die Vorsichtsmaßnahmen für die Konvertierung des assoziativen Arrays des Ajax-Frontends von JSON? Das Folgende ist ein praktischer Fall.
Viele Leute sind darauf gestoßen, dass Ajax beim Übergeben von Werten Arrays nicht direkt übergeben kann und die meisten davon auf Baidu nicht verwendet werden können
Also habe ich mir eine Methode überlegt:
Kapitel Schritt Erstens: Konvertieren Sie das Array in jsonstring
Dies ist ein technisches Problem. Baidu sagte, dass JSON.stringify(arr) keine assoziativen Arrays konvertieren kann, auch Indizes Arrays viele Mängel
Also habe ich speziell eine jsrekursive Funktion gekapselt
function arrToJSON(arr) { var json = {}; for (var i in arr) { var vo=arr[i]; if (typeof arr[i] == "object") { json[i]={}; json[i] = arrToJSON(vo); } else { json[i] =vo; } } return JSON.stringify(json); }
Solange Sie jsmehrdimensionales Array übergeben, kann alles analysiert werden Arrays in Strings
damit Werte in Ajax übergeben werden können~~~
Schritt 2:
Aber die auf diese Weise konvertierten JSON-Zeichen Der String ist unvollständig und Das gesamte Array kann nicht direkt analysiert werden
Wie in der Abbildung gezeigt
Sie können feststellen, dass diese Funktion die Sub-JSON-Zeichenfolge der unteren Ebene angibt Verwenden Sie Schrägstriche, um zu entkommen. Je weiter Sie nach unten gehen, desto mehr Schrägstriche gibt es.
Wenn der Hintergrund json_decode die erste Ebene verarbeitet, ist die zweite Ebene tatsächlich immer noch eine json_decode-Zeichenfolge
Also der Hintergrund Benötigt eine neue Die Dekodierfunktion wird verwendet, um diesen JSON-String zu analysieren
/** * 解析前台传来的不完整json字符串 */ private function json_decode_x($str) { $data_arr = array(); $arr = json_decode($str, 1); foreach ($arr as $x => $a) { if (preg_match('/":/', $arr[$x])) { //匹配 $data_arr[$x] = $this->json_decode_x($a); } else { $data_arr[$x] = $a; } } return $data_arr; }
In diesem Fall wird der JSON-String im Hintergrund empfangen und mit dieser Funktion analysiert, sodass ein vollständiges und korrektes mehrdimensionales Array erstellt werden kann erhalten
Da es für meine Geschäftsanforderungen keine Zeichenfolge wie /" gibt, können Sie damit feststellen, ob die Teilzeichenfolge noch eine JSON-Zeichenfolge enthält, die analysiert werden kann. Wenn sie in einem tatsächlichen Projekt verwendet wird, Bitte ändern Sie das reguläre Urteil
Natürlich können diejenigen, die dazu in der Lage sind, den ersten Schritt direkt in eine vollständige JSON-Zeichenfolge ändern, sodass der Hintergrund direkt einen json_decode zum Parsen verwenden kann
Ich glaube Ihnen Nachdem Sie den Fall in diesem Artikel gelesen haben, beherrschen Sie die Methode. Weitere spannende Artikel finden Sie auf der chinesischen Website.
Anleitung Verhindern Sie JS-Sprudeln und Browser-StandardverhaltenWie wäre es mit JS? Aktualisieren Sie die übergeordnete SeiteJS- und Canvas-Kompositbilder zum Erstellen von WeChat-Postern für öffentliche KontenDas obige ist der detaillierte Inhalt vonAssoziatives Ajax-Front-End-Array zu JSON zur Hintergrundmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!