Gunnar Bittersmann: Fehler "unexpected token: numeric literal" beim Versuch PHP-Array zu übernehmen

Beitrag lesen

@@Nico R.

Jetzt, wo ich nochmal draufgestarrt habe, ist mir doch noch ein Licht aufgegangen. Die Kombination aus ="{" ging natürlich nicht. Mit

let toreArrayDB = '<?=json_encode($toreArray)?>';

hats funktioniert.

Ja, wenn du " außen als Stringbegrenzer verwendest, darf im String natürlich kein nicht-escapetes " sein. Da ist ' als Stringbegrenzer zu verwenden richtig. Und, wie @MudGuard schon anmerkte, darf dann natürlich kein nicht-escapetes ' im String sein.

(Sollten welche vorkommen, müssten sie entweder als \' escapet werden oder – wenn es sich um Text handelt – durch richtige Apostrophe ersetzt werden.)

Andersrum außen " und innen ' würde nicht funktionieren, da das JSON-Format nur ", aber nicht ' als Stringbegrenzer zulässt.

Warum hast du numerische Werte überhaupt als Strings im JSON? Die Identifier (vor den :) müssen Strings sein, aber die Werte nach den [ nicht. Das ist auch valides JSON:

{"0":[347,{"1":[10,null]}],"1":[344,{"1":[20,"1"],"2":[30,null]}],"3":[338,{"1":[30,null]}]}

Kwakoni Yiquan

--
Ad astra per aspera