Jörg Reinholz: Serialize - Kontextwechsel?

Beitrag lesen

Moin!

Meine Überlegung ging jetzt dahin, ob man das nicht generell auch auf solche Formate wie JSON übertragen kann. Das würde bedeuten, dass z.B. JSON innerhalb JavaScript Verwendung findet, außer für Austauschzwecke aber nichts in PHP zu suchen hätte.

Die Sache ist doch die:

"JSON" heisst "Javascript Object Notation". Stammt, wenn man so will, nativ aus Javascript. Und speichert angeblich Java-Skript-Objekte.

Wie weit es damit wirklich her ist zeigt das hier:

   // einfaches Erzeugen eines hübschen Objektes mit nachvollziehbarer Wirkweise:
        function classArithmetik(val1, val2) {
            // "Instanzierung" aus Parametern und festen Werten
            this.val1 = val1;
            this.val2 = val2;
            this.lastErg = false;
            this.lastErrorNbr = 0;
            this.lastErrorMsg  ='';

            // Eine Handvoll niedlicher Methoden:
            this.add = function () {
                this.lastErg = val1 + val2;
                return this.lastErg;
            }

            this.min = function () {
                this.lastErg = val1 - val2;
                return this.lastErg;
            }

            this.multi = function () {
                this.lastErg = val1 * val2;
                return this.lastErg;
            }

            this.div = function () {
                if (val2) {
                    this.lastErg = val1 / val2;
                    return this.lastErg;
                } else {
                    this.lastErg = false;
                    this.lastErrorNbr = 1;
                    this.lastErrorMsg = "Division durch Null";
                    return false;
                }
            }
        }

        // Benutzen wir das Ding mal:
        var o = new classArithmetik(6, 0);
        alert (o.div());
        if (false == o.lastErg) {
           alert (o.lastErrorNbr + ': ' + o.lastErrorMsg);
        }

        // und jetzt JSON....
        alert (JSON.stringify(o));

letzter Alert:

{"val1":6,"val2":0,"lastErg":false,"lastErrorNbr":0,"lastErrorMsg":"","LastErrNbr":1,"LastErrMsg":"Division durch Null"}

Von wegen "Object"- Notation! Es werden entggeen dem, was der Name erwarten lässt, nur die Eigenschaften, nicht die Methoden "stringifiziert"!

Soweit ich das verstehe hat das seinen Grund, weil in Javascript arrays, insbesondere assoziative Arrays (und sogar Strings) nicht wirklich Variablen sondern bereits Objekte sind.

Aber um die Inhalte von (assoziativen) Arrays zu transportieren ist es eine Klasse-Sache, so lange man sich daran hält, dass es für JSON.stringify inzwischen auch schon die zweite Vorschrift gibt, was auf php.net ganz nett erklärt wird. Das betrifft aber nur die Übertragung "skalarer Typen" ("Skalare" nennt man in Perl einfache Variablen) oder gleich von "NULL"-Werten. Nichts davon macht mir aber Sorgen, denn es gäbe, so die Gefahr bestände, die Konstante JSON_FORCE_OBJECT

Eines noch. JSON ist auch ein Klasse-Daten-Transportcontainer. Viele Dienste der Google-API benutzen z.B. JSON für die Antworten. Das lässt sich fummelfrei auswerten.

"Endgeil!" sag ich nur :)

Jörg Reinholz

0 72

Serialize

Jnnbo
  • mysql
  • php
  1. 0

    Serialize - Mein Beispiel

    Jnnbo
    1. 0
      woodfighter
      1. 0
        Jnnbo
        1. 0
          woodfighter
          1. 0
            Jnnbo
            1. 1
              Der-Dennis
              1. 0
                Jnnbo
                1. 0
                  Der-Dennis
        2. 0
          Sven Rautenberg
          1. 0
            Jnnbo
            1. 0
              Sven Rautenberg
              1. 0
                Jörg Reinholz
  2. 0
    woodfighter
    1. 0
      dedlfix
  3. 0
    Serialize
    1. 0
      woodfighter
  4. 1
    Jörg Reinholz
    • php
    1. 0
      Jnnbo
      1. 0
        Jörg Reinholz
        1. 0
          Jnnbo
          1. 0
            Jörg Reinholz
            1. 0

              2 Stufe der Auflösung

              Jörg Reinholz
            2. 0
              dedlfix
              1. 0
                Jörg Reinholz
                1. 0

                  Serialize - Kontextwechsel?

                  Der-Dennis
                  1. 1
                    Jörg Reinholz
                    1. 0
                      Der-Dennis
                      1. 0
                        Jörg Reinholz
                        1. 0

                          JSON

                          Der-Dennis
                          1. 0
                            Jörg Reinholz
                            1. 0
                              Der-Dennis
                          2. 0
                            Tabellenkalk
                            • hardware
                            1. 0
                              Der-Dennis
                  2. 1
                    dedlfix
                    1. 0
                      Der-Dennis
                  3. 0
                    Tabellenkalk
                    • perl
                    1. 0
                      Der-Dennis
              2. 0

                Meine Erklärung warum ich das als Serialize speichern möchte.

                Jnnbo
                1. 0
                  Der-Dennis
                2. 0
                  dedlfix
                  1. 0
                    Jnnbo
                3. 0
                  Jörg Reinholz
            3. 0
              Der Martin
            4. 0
              Jnnbo
              1. 0
                frankx
                1. 0
                  Jnnbo
                  1. 0
                    Der-Dennis
              2. 0
                Der-Dennis
                1. 0
                  Jnnbo
                  1. 0
                    Der-Dennis
              3. 0
                Jörg Reinholz
                1. 0
                  Der-Dennis
                2. 0
                  Jnnbo
              4. 1

                Jetzt habe ich gerafft, was Du überhaupt willst

                Jörg Reinholz
                1. 0
                  Jörg Reinholz
                  1. 0
                    Jnnbo
                    1. 0
                      Jörg Reinholz
                      1. 0
                        Jnnbo
                        1. 0
                          Jörg Reinholz
                          1. 0
                            Jörg Reinholz
                            1. 0

                              Notice: Undefined index: wps_strasse

                              Jnnbo
                              1. 1
                                Der Martin
                                1. 0
                                  Jnnbo
                                  1. 1
                                    Der Martin
                                2. 0
                                  dedlfix
                          2. 0
                            Jnnbo
            5. 1
              Sven Rautenberg
    2. 1
      dedlfix
      1. 0
        Jörg Reinholz
    3. 0
      Sven Rautenberg
      1. 1
        dedlfix