Tach!
Den String kannst Du jederzeit zu einem Array machen:
$arr=json_decode($str);
Der Fehler ist hier, dass json_decode keine Arrays produziert, wenn in JSON-Notation Objekte (sprich: ehemalige PHP-Arrays mit Text-Keys) vorkommen, sondern stdClass-Objekte erzeugt.
Korrekt muss die Zeile lauten:
$arr=json_decode($str,true);
Damit klappt das Rückwandeln zwar in diesem Fall, aber so gehen Objekte verloren - Klassenzugehörigkeiten sowieso, das ist in JSON nicht vorgesehen.
JSON ist ein wunderbares Austauschformat - wenn man was mit einem Browser auszutauschen hat. Für reine PHP-Zwecke ist es jedoch keine gute Wahl.
dedlfix.