2017-10-23 1 views
0

Ich versuche, ein Array von einer Abfrage abzurufen, Abfrage ist in Ordnung, ich habe eine assoc_array, wenn ich var_dump() besagten Array alles in Ordnung ist.

zu diesem Array nach json_enconde($assoc_array)

aber wenn ich ein var_dump($json_array) tun bekam ich ein bool (false)

Normale assoc_array von Abfrage ist:

array(2) { [0]=> array(4) { ["nombre"]=> string(13) "Raxo Pimienta" ["descripcion"]=> string(52) "Ternera en salsa a la pimienta acompa�ada de patatas" ["precio"]=> string(2) "14" ["id"]=> string(1) "1" } [1]=> array(4) { ["nombre"]=> string(14) "Ensalada Cesar" ["descripcion"]=> string(58) "Lechuga, bacon, crotones y salsa cesar con queso parmesano" ["precio"]=> string(1) "8" ["id"]=> string(1) "2" } } 
+3

'json_enconde ($ assoc_array)' Sie haben einen Rechtschreibfehler. –

Antwort

0

JSON ist nicht binär sicher. Es gibt viele binäre Daten, die einfach nicht nach json codiert werden können. PHP-Strings hingegen sind vollkommen binärsicher, sie können jede beliebige Bytefolge enthalten (anders als json). Ihr Array enthält wahrscheinlich eine (php) Zeichenfolge mit Byte-Sequenzen, die nicht Json-codiert werden können. versuchen Sie var_dump(json_last_error_msg());, sollte es angeben, warum die Codierung fehlgeschlagen ist. Sie könnten versuchen, das JSON_PARTIAL_OUTPUT_ON_ERROR-Flag zu verwenden, aber Sie sollten besser die Quelle dieser json-inkompatiblen Daten suchen und diese in etwas json-safe codieren. PS, genau wie PHP-Strings, Base64-Codierung ist binär sicher. Wenn Sie die Quelle finden, können Sie diese in base64 kodieren, die dann zum json hinzugefügt werden kann.

edit: Das Json-inkompatible Zeichen ist wahrscheinlich das seltsame Zeichen in der ["descripcion"]: acompa�ada - und schlägt vor, dass Sie ein Codierungsproblem an anderer Stelle haben. (Verwenden Sie den utf8 Zeichensatz beim Verbinden mit einer SQL Datenbank? Ist die Datenbank Tabelle die utf8 Kollation verwendet? sieht so aus als gäbe es einen Codierungsfehler, der zu einer Beschädigung der "descripcion" Zeichenkette führt)

-1

Problem war ein " "Charakter aus DB-Daten, nicht mehr.

Verwandte Themen