Array in JSON umwandeln

kannaum

Mitglied
Hallo,

ich muss zugeben, dass ich schon länger nichts mehr mit PHP gemacht habe und jetzt habe ich gewisse Startschwierigkeiten. Die meisten Probleme konnte ich schon lösen, aber bei einem finde ich auch mit Google keinen Ansatz das Problem zu beheben.

Zum Problem:
Ich hole mir eine ganze Menge Daten aus einer Datenbank und schreibe die alle in ein Array, dass dann in etwa folgendermaßen aussieht:
PHP:
Array
(
[0] => Array
(
[id] => 0
[surname] => Mäx
[forename] => Müstermann
[title] => Mag.
[party] => 0
[address] => http://www.musterurl.blup
[seatNr] => 1
[name] => Musterpartei
[abbreviation] => MP
[hexColor] => 000000
)

[1] => Array
(
...
Dieses Array möchte ich nun in einen JSON-String umwandeln, was ich mit json_encode (mit allen möglichen verschiedenen Optionen) versucht habe.
Leider gibt er mir mit
PHP:
echo json_encode($array)
gar nichts aus und es kommt auch keine Fehlermeldung.
Könnte das vielleicht an den Umlauten liegen, aber wenn ich per Hand ein Testarray mit json_encode umwandle funktioniert auch das problemlos?

Habt Ihr eine Idee, was ich noch probieren könnte?

mfg
Philipp
 
Auch wenn ich error_reporting auf E_ALL stelle bekomme ich leider keinen Fehler angezeigt.
Auch im Quelltext wird davon nichts angezeigt.
 
Lies mal den gesamten von mir verlinkten Artikel. (Da steht auch noch was von display_errors) Ansonsten mal bitte den entsprechenden Quellcode posten (komplett, kein Pseudocode!), wenn möglich mit den entsprechenden debug ausgaben. Diese sollten mit var_dump() erfolgen, wichtig wäre vorallem ein dump des array und danach ein dump von dem json_encodeten array...
 
Hallo,

json_encode() akzeptiert zwei optionale Parameter. Sind deine Elemente alle UTF-8-Kodiert? Les dir die Beschreibung der Funktion noch mal genau durch und kontrolliere, ob die Randbedingungen erfüllt sind:

http://www.php.net/manual/en/function.json-encode.php hat gesagt.:
value
The value being encoded. Can be any type except a resource.

All string data must be UTF-8 encoded.

Note:

PHP implements a superset of JSON - it will also encode and decode scalar types and NULL. The JSON standard only supports these values when they are nested inside an array or an object.

options
Bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE. The behaviour of these constants is described on the JSON constants page.

depth
Set the maximum depth. Must be greater than zero.

Desweiteren gibt es noch die Funktionen json_last_error und json_last_error_msg, die solltest du mal einbauen.
 
Vielen Dank für Eure Antworten!
Wenn ich vor dem json_encode alle Strings mit utf8_encode umwandle funktioniert es.
Also vielen Dank, ohne den Tipp hätte es sicher noch lange gedauert, bis ich das Problem gefunden hätte!
 
Zurück