2Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
373
373
EMPFEHLEN
-
Hallöchen!
Ich habe ein kleines Problem mit json decode.
Ich bekomme per GET einen String per AJAX übergeben. Ein mehrdimensionales Array.
Der String sieht dann so aus:
So kann man den nicht gebrauchen.\"[{\\\"mid\\\":\\\"4\\\",\\\"text\\\":\\\"50\\\"},{\\\"mid\\\":\\\"5\\\",\\\"text\\\":\\\"weiß\\\"},{\ \\"mid\\\":\\\"6\\\",\\\"text\\\":\\\"ohne Dimmer\\\"},{\\\"mid\\\":\\\"11\\\",\\\"text\\\":\\\"30\\\"}]\"
Also mache ich folgendes:
Damit der String so aussieht:PHP-Code:$array = str_replace('\\', '', $array);
$array = str_replace('"[', '[', $array);
$array = str_replace(']"', ']', $array);
Dennoch bekomme ich hier:[{"mid":"4","text":"50"},{"mid":"5","text":"weiß"},{"mid":"6","text":"ohne Dimmer"},{"mid":"11","text":"30"}]
NULL raus. Wo liegt der Fehler?PHP-Code:$array = json_decode($array, true);
print_r($array);
Gruß
MyarGeändert von Myar (04.01.12 um 13:01 Uhr)
-
04.01.12 13:23 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Hi, schau mal hier:
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
<?php header('Content-Type: text/html; charset=utf-8'); $json = '\"[{\\\"mid\\\":\\\"4\\\",\\\"text\\\":\\\"50\\\"},{\\\"mid\\\":\\\"5\\\",\\\"text\\\":\\\"weiß\\\"},{\ \\"mid\\\":\\\"6\\\",\\\"text\\\":\\\"ohne Dimmer\\\"},{\\\"mid\\\":\\\"11\\\",\\\"text\\\":\\\"30\\\"}]\"'; $json = substr(stripcslashes(stripcslashes($json)), 1, -1); echo $json; $data = json_decode($json, true); if($data) var_dump($data); else { switch(json_last_error()) { case JSON_ERROR_DEPTH: echo ' - Maximale Stacktiefe überschritten'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Unerwartetes Steuerzeichen gefunden'; break; case JSON_ERROR_SYNTAX: echo ' - Syntaxfehler, ungültiges JSON'; break; case JSON_ERROR_NONE: echo ' - Keine Fehler'; break; case JSON_ERROR_UTF8: echo 'UTF-8-Fehler!'; break; } }
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Danke für die Antwort!
Aber:
Laut PHP Manual müsste es die geben, jaPHP Fatal error: Call to undefined function json_last_error()
Edit:
Oh, ungeachtet der Funktion... dein Code hat geholfen, danke!Geändert von Myar (04.01.12 um 13:49 Uhr)
-
04.01.12 13:41 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Die gibt's erst seit PHP 5.3. Hast du evtl. eine ältere Version? Mein Beispiel funktioniert aber auch ohne den json_last_error(). Was du eigentlich brauchst, ist nur der Teil mit
Code php:1
$json = substr(stripcslashes(stripcslashes($json)), 1, -1);
Ich hab das der Vollständigkeit nur mit der Fehler-Auswertung eingebaut. Du könntest allerdings noch versuchen, error_reporting() und display_errors einzuschalten.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
Frage zu JSON. HTML-Konstrukt mit JSON übergeben
Von Jan-Frederik Stieler im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 16.04.11, 16:04 -
JSON - Problem mit Umlauten
Von SAMariter im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 09.06.10, 10:28 -
Problem mit JSON / Umlauten
Von Kopfballstar im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 02.02.09, 12:58 -
SQL - decode Problem
Von FanClub im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 14.07.08, 18:10 -
Problem mit Umlaut / UTF-Decode
Von Kopfballstar im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 27.05.08, 14:22





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren