webentwicklung-frage-antwort-db.com.de

Was bedeutet Deserialisieren und Serialisieren in JSON?

Ich bin neu in JSON. Jetzt muss ich JSON für mein Flash ActionScript 3.0 verwenden. Also habe ich eine Bibliothek für JSON gefunden und die Begriffe "deserialisieren" und "serialisieren" gesehen. Was meinen sie?

90
coderex

JSON ist ein Format, das Objekte in einer Zeichenfolge codiert. Serialisierung bedeutet, dass ein Objekt in diese Zeichenfolge konvertiert wird, und die Deserialisierung ist die umgekehrte Operation.

Beim Übertragen oder Speichern von Daten in einer Datei müssen die Daten Byte-Strings sein, komplexe Objekte sind in diesem Format jedoch selten. Die Serialisierung kann diese komplexen Objekte für eine solche Verwendung in Byte-Strings umwandeln. Nachdem die Bytefolgen übertragen wurden, muss der Empfänger das ursprüngliche Objekt aus der Bytefolge wiederherstellen. Dies wird als Deserialisierung bezeichnet.

Angenommen, Sie haben ein Objekt

{foo: [1, 4, 7, 10], bar: "baz"}

beim Serialisieren in JSON wird es in eine Zeichenfolge konvertiert:

'{"foo":[1,4,7,10],"bar":"baz"}'

die gespeichert oder per Kabel an einen beliebigen Ort gesendet werden können. Der Empfänger kann diese Zeichenfolge dann deserialisieren, um das ursprüngliche Objekt wiederherzustellen. {foo: [1, 4, 7, 10], bar: "baz"}.

165
kennytm

Im Kontext der Datenspeicherung ist Serialisierung (oder Serialisierung) der Prozess der Übersetzung von Datenstrukturen oder des Objektzustands in ein Format, das gespeichert werden kann (zum Beispiel) B. in einer Datei oder einem Speicherpuffer) oder übertragen (beispielsweise über eine Netzwerkverbindungsverbindung) und später rekonstruiert. [...]
Die entgegengesetzte Operation, bei der eine Datenstruktur aus einer Reihe von Bytes extrahiert wird, ist die Deserialisierung .

Aus Wikipedia: Serialisierung

Python-Beispiel

Zum Beispiel bedeutet in Python "serialization" nichts anderes, als die angegebene Datenstruktur (z. B. ein dict) in ihren gültigen JSON-Pendant zu konvertieren.

Pythons True werden also in JSONs true konvertiert, und das Wörterbuch selbst wird dann in Anführungszeichen eingeschlossen.

Das Python Modul json ist hier sehr nützlich:

data = {
    "president": {
        "name": "Zaphod Beeblebrox",
        "species": "Betelgeusian",
        "male": True,
    }
}

import json
json_data = json.dumps(data, indent=2) # serialize
restored_data = json.loads(json_data) # deserialize

# serialized json_data now looks like:
# {
#   "president": {
#     "name": "Zaphod Beeblebrox",
#     "species": "Betelgeusian",
#     "male": true
#   }
# }

Sie können den Unterschied zwischen einem Python) - Wörterbuch und JSON anhand der Booleschen Werte leicht erkennen:

  • Python : True/False,
  • [~ # ~] json [~ # ~] : true/false

Quelle: realpython.com

4
winklerrr