dedlfix: Serialize - Kontextwechsel?

Beitrag lesen

Tach!

eine ernstgemeinte Frage, denn ich weiß es nicht: Gibt es nicht auch bei solchen Austauschformaten eine Art indirekten Kontextwechsel, wonach man sich einigermaßen richten kann?

Also zum Beispiel: Wir haben verschiedene Sprachen, sagen wir einfach mal JavaScript, PHP und Perl. Könnte man dann nicht sagen:

  • Möchten JavaScript und PHP Daten austauschen, "einigen sie sich" entweder auf JSON oder PHP-serialize

In dem Fall besser JSON. JSON hat Tools in beiden Welten. PHPs serialize() ist nur bedingt mit Javascript verarbeitbar. Knackpunkt ist hier die unterschiedliche Handhabung von Arrays und Objekten in beiden Welten. Das geht zwar prinzipiell alles, aber man muss sich erstmal Tools herstellen oder anderenorts welche finden.

  • Möchten JavaScript und Perl Daten austauschen, "einigen sie sich" entweder auf JSON oder Perl-Storable
  • Möchten PHP und Perl Daten austauschen, "einigen sie sich" entweder auf PHP-serialize oder Perl-Storable

Vielleicht, vielleicht auch nicht. Kommt auf den Anwendungsfall an (und auf die vorhandenen Tools).

  • Will JavaScript etwas z.B. im localStorage speichern wird JSON verwendet
  • Will PHP etwas z.B. in einer Datei speichern wird PHP-serialize verwendet
  • Will Perl etwas z.B. in einer Datei speichern wird Perl-Storable verwendet

Das ist wohl das vernüftigste, weil das individuell auf die Sprache und deren Belangen bei den Datenstrukturen abgestimmt ist.

Zum Austausch kann natürlich auch ein anderes Format (XML, CSV, was-weiß-ich) verwendet werden, aber innerhalb sollte doch immer die dafür geeignetste Methode verwendet werden!?

Besser ist das. Es sei denn, man hat Grunde es anders zu machen. Und damit meine ich nicht irgendwelche generellen Gründe sondern bezogen auf den konkreten Anwendungsfall.

Wenn dem so ist hätte man doch eine einigermaßen klare Regel für "richtig" und "falsch" mit der Begründung "Kontextwechsel".

Kontextwechsel braucht man nicht zu berücksichtigen, das machen die jeweiligen Tools. (Es sei denn, man schreibt das Tool selbst.) Der Kontextwechsel muss aber weiterhin beachtet werden, wenn solche serialisierten Daten in einen anderen Kontext gebracht werden.

Ps: Mit Perl hab ich noch nie was gemacht, kann also sein, dass Perl-Storable völlig falsch ist :-)

Ich kenne es auch nicht und gehe für die vorliegende Betrachtung mal davon aus, dass es etwas vergleichbares ist.

dedlfix.

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