Heim > Web-Frontend > js-Tutorial > Was bedeutet ein JSON-Formatfehler?

Was bedeutet ein JSON-Formatfehler?

(*-*)浩
Freigeben: 2019-06-15 17:57:51
Original
13467 Leute haben es durchsucht

Formatfehler

Was bedeutet ein JSON-Formatfehler?

Da JSON nur UTF-8-codierte Zeichen akzeptiert, müssen die Parameter von json_encode() UTF-8 sein Codierung, andernfalls erhalten Sie ein Nullzeichen oder null. Wenn Chinesisch die GB2312-Kodierung verwendet oder Fremdsprachen die ISO-8859-1-Kodierung verwenden, sollte diesem Punkt besondere Aufmerksamkeit gewidmet werden.

$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ "bar": "baz", }';
Nach dem Login kopieren

Das Ausführen von json_decode() für diese drei Zeichenfolgen gibt null zurück und meldet einen Fehler.

Der erste Fehler besteht darin, dass das JSON-Trennzeichen nur die Verwendung von doppelten Anführungszeichen und nicht von einfachen Anführungszeichen zulässt. Der zweite Fehler besteht darin, dass der „Name“ (der Teil links vom Doppelpunkt) des JSON-Name-Wert-Paares auf jeden Fall doppelte Anführungszeichen verwenden muss. Der dritte Fehler besteht darin, dass Sie nach dem letzten Wert kein abschließendes Komma hinzufügen können.

Darüber hinaus kann json nur zur Darstellung von Objekten und Arrays verwendet werden. Wenn json_decode() für eine Zeichenfolge oder einen Wert verwendet wird, wird null zurückgegeben.

Das Format ist korrekt, es wird jedoch ein Fehler gemeldet

Der erste Typ, Zeichenkodierungsproblem

Da JSON nur UTF-8-kodierte Zeichen akzeptiert , also Die Parameter von json_encode() müssen UTF-8-codiert sein, sonst erhalten Sie Nullzeichen oder Null. Wenn Chinesisch die GB2312-Kodierung verwendet oder Fremdsprachen die ISO-8859-1-Kodierung verwenden, sollte diesem Punkt besondere Aufmerksamkeit gewidmet werden.

Die zweite Art von BOM-Problem

Der BOM-Header wird auch als UTF-8-Signatur bezeichnet. Tatsächlich hat der UTF-8-BOM keine Auswirkung auf UFT-8 -16 und UTF-32. Die BOM-Signatur bedeutet, dem Editor mitzuteilen, welche Codierung die aktuelle Datei verwendet, um die Identifizierung des Editors zu erleichtern. Obwohl die BOM nicht im Editor angezeigt wird, wird nur eine Ausgabe generiert Wie eine zusätzliche Leerzeile: Wenn der PHP-Code mit Software wie Notepad bearbeitet und gespeichert wird, werden beim Speichern einer in UTF-8 codierten Datei am Anfang drei unsichtbare Zeichen (0xEF, 0xBB, 0xBF oder BOM) eingefügt die Datei. Dabei handelt es sich um eine Zeichenfolge versteckter Zeichen, mit der Editoren wie Notepad erkennen können, ob die Datei in UTF-8 codiert ist. (Es ist unklar, warum der Stücklistenkopf bei der Rückgabe von Daten automatisch hinzugefügt wird.)

/**
 * 去除bom报头
 */
public static String formatString(String s) {
if (s != null) {
  s = s.replaceAll("\ufeff", "");
}
 return s;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas bedeutet ein JSON-Formatfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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