Lukas.: JSON Daten "manuell" übergeben

Hallo,

echo json_encode($data);

ergibt

{"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]} {"2015":[103,919,1313,924,918,1106,1310,1017,1129,1218,1116,1212]} {"2016":[1124,1217,1119]}

Wie kann ich den JSON-String selber per echo-Befehl 1:1 weitergeben?

echo(' {"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]} {"2015":[103,919,1313,924,918,1106,1310,1017,1129,1218,1116,1212]} {"2016":[1124,1217,1119]} ');

funktioniert nicht.

Funktioniert hätte eine Zeile, also echo('{"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]}');

Woran scheitert meine "manuelle Weitergabe"?

Luk

  1. Tach!

    funktioniert nicht.

    "Funktioniert nicht" funktioniert nicht als Fehlerbeschreibung. Bitte erzähl doch genau, was du erwartest und was anstatt dessen kommt, oder welche Fehlermeldung ausgegeben wird.

    dedlfix.

    1. Hi,

      "Funktioniert nicht" funktioniert nicht als Fehlerbeschreibung. Bitte erzähl doch genau, was du erwartest und was anstatt dessen kommt, oder welche Fehlermeldung ausgegeben wird.

      Ich glaube, ich muß diese Frage eh zurückziehen, weil ich übersehen habe, dass mein Array, das ich per JSON erzeuge, innerhalb einer Schleife gebildet wird. (was prinzipiell egal ist, aber das passt der Rückgabewert nicht mehr, wenn ich die Jahre zusammenfasse)

      Luk

      1. Tach!

        Ich glaube, ich muß diese Frage eh zurückziehen, weil ich übersehen habe, dass mein Array, das ich per JSON erzeuge, innerhalb einer Schleife gebildet wird. (was prinzipiell egal ist, aber das passt der Rückgabewert nicht mehr, wenn ich die Jahre zusammenfasse)

        Du musst schon dafür sorgen, dass gültiges JSON entsteht. In deinem Ausgangsposting fehlen beispielsweise Kommas und umschließende Klammern. Wenn du eine einzelne große Datenstruktur erstellst und die dann dem json_encode() übergibst, kann das nicht passieren.

        dedlfix.

  2. Hallo,

    echo json_encode($data);

    ergibt

    {"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]}
    {"2015":[103,919,1313,924,918,1106,1310,1017,1129,1218,1116,1212]}
    {"2016":[1124,1217,1119]}
    

    Funktioniert hätte eine Zeile

    Vermutlich hast Du ein Konstrukt wie:

    <script type='text/javascript'>
    var foo=<?php echo '{"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]}
    {"2015":[103,919,1313,924,918,1106,1310,1017,1129,1218,1116,1212]}
    {"2016":[1124,1217,1119]}';?>
    </script>
    

    Nur kommt da eben:

    <script type='text/javascript'>
    var foo={"2014":[1101,165,173,175,719,813,981,1194,119,110,104,71]}
    {"2015":[103,919,1313,924,918,1106,1310,1017,1129,1218,1116,1212]}
    {"2016":[1124,1217,1119]}
    </script>
    

    heraus. Das sind zwei Syntaxfehler. Erstens kein Stringbegrenzer, zweitens die Zeilenumbrüche.

    Die Übergabe der Daten von Programm zu Programm ist wegen des Kontextwechsels nicht trivial.