JSON ist ein Format, das Objekte in einer Zeichenfolge codiert. Serialisierung bedeutet, ein Objekt in diese Zeichenfolge zu konvertieren , und Deserialisierung ist die inverse Operation (Zeichenfolge konvertieren -> Objekt). .
Wenn Daten übertragen oder in einer Datei gespeichert werden, müssen die Daten Byte-Zeichenfolgen sein, komplexe Objekte liegen jedoch selten in diesem Format vor. Durch die Serialisierung können diese komplexen Objekte für eine solche Verwendung in Byte-Zeichenfolgen konvertiert werden. Nachdem die Byte-Strings übertragen wurden, muss der Empfänger das ursprüngliche Objekt aus dem Byte-String wiederherstellen. Dies ist als Deserialisierung bekannt.
Angenommen, Sie haben ein Objekt:
{foo:[1,4,7,10], bar:"baz"}
Durch die Serialisierung 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 zurückzugewinnen. {foo: [1, 4, 7, 10], bar: "baz"}.
@kennytm - Ich versuche meinen Kopf darum zu wickeln, Sachen über den Draht zu schicken. Unabhängig davon, ob ich eine binäre Codierung oder json, xml oder proto buf verwende - die Daten müssen immer in Bytes angegeben werden, bevor sie über das Kabel gesendet werden können. Ist das wahr?
Nirmal
1
@Nirmal Ja. ___
Kennytm
1
Ein Gedächtnisgerät, mit dem ich mich an den Unterschied erinnere, ist, dass "Serialisierung Objekte in Seriennummern verwandelt"
Janac Meena
1
Warum also nicht einfach"{foo: [1, 4, 7, 10], bar: "baz"}"
Panoet
2
@EnricoMariaDeAngelis JSON-Eigenschaften müssen in Anführungszeichen stehen. Es ist eine Notwendigkeit - sehen Sie sich das erste Beispiel im Wiki an: en.wikipedia.org/wiki/JSON
Cloud
8
Im Zusammenhang mit der Datenspeicherung ist Serialisierung (oder Serialisierung) der Prozess der Übersetzung von Datenstrukturen oder Objektzuständen in ein Format, das gespeichert (z. B. in einer Datei oder einem Speicherpuffer) oder übertragen (z. B. über eine Netzwerkverbindung) werden kann Link) und später rekonstruiert. [...]
Die entgegengesetzte Operation, bei der eine Datenstruktur aus einer Reihe von Bytes extrahiert wird, ist die Deserialisierung . Aus Wikipedia
In Python führt "Serialisierung" nichts anderes aus, als nur die angegebene Datenstruktur (z. B. a dict) in ihren gültigen JSON-Anhänger (Objekt) zu konvertieren .
Pythons Truewerden in JSONs konvertiert trueund das Wörterbuch selbst wird dann in Anführungszeichen gesetzt.
Sie können den Unterschied zwischen einem Python-Wörterbuch und JSON leicht anhand ihrer Booleschen Werte erkennen:
Python : True/ False,
JSON : true/false
Das in Python integrierte Modul jsonist die Standardmethode für die Serialisierung:
Erläuterung von Serialize und Deserialize mit Python
In Python wird das Pickle-Modul für die Serialisierung verwendet. Daher wird der Serialisierungsprozess in Python als Beizen bezeichnet . Dieses Modul ist in der Python-Standardbibliothek verfügbar .
Serialisierung mit Gurke
import pickle
#the object to serialize
example_dic={1:"6",2:"2",3:"f"}#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")#Time to dump
pickle.dump(example_dic,pickle_out)#whatever you open, you must close
pickle_out.close()
Die PICKLE-Datei (kann von einem Texteditor wie dem Editor geöffnet werden) enthält Folgendes (serialisierte Daten):
Der Benutzer fragte jedoch, ob JSON nicht einlegen soll. Das ist etwas offtopisch.
smci
Dies ist die ursprüngliche Frage: Was ist Deserialisieren und Serialisieren in JSON? Ich habe Pythons Pickle-Modul verwendet, um die Idee zu demonstrieren. Ich habe ein Werkzeug verwendet, um eine Idee zu erklären. Sie konzentrieren sich mehr auf das Werkzeug als auf die Idee.
Antworten:
JSON ist ein Format, das Objekte in einer Zeichenfolge codiert. Serialisierung bedeutet, ein Objekt in diese Zeichenfolge zu konvertieren , und Deserialisierung ist die inverse Operation (Zeichenfolge konvertieren -> Objekt). .
Wenn Daten übertragen oder in einer Datei gespeichert werden, müssen die Daten Byte-Zeichenfolgen sein, komplexe Objekte liegen jedoch selten in diesem Format vor. Durch die Serialisierung können diese komplexen Objekte für eine solche Verwendung in Byte-Zeichenfolgen konvertiert werden. Nachdem die Byte-Strings übertragen wurden, muss der Empfänger das ursprüngliche Objekt aus dem Byte-String wiederherstellen. Dies ist als Deserialisierung bekannt.
Angenommen, Sie haben ein Objekt:
Durch die Serialisierung in JSON wird es in eine Zeichenfolge konvertiert:
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 zurückzugewinnen.
{foo: [1, 4, 7, 10], bar: "baz"}
.quelle
"{foo: [1, 4, 7, 10], bar: "baz"}"
In Python führt "Serialisierung" nichts anderes aus, als nur die angegebene Datenstruktur (z. B. a
dict
) in ihren gültigen JSON-Anhänger (Objekt) zu konvertieren .True
werden in JSONs konvertierttrue
und das Wörterbuch selbst wird dann in Anführungszeichen gesetzt.True
/False
,true
/false
json
ist die Standardmethode für die Serialisierung:Codebeispiel:
Quelle: realpython.com
quelle
Erläuterung von Serialize und Deserialize mit Python
In Python wird das Pickle-Modul für die Serialisierung verwendet. Daher wird der Serialisierungsprozess in Python als Beizen bezeichnet . Dieses Modul ist in der Python-Standardbibliothek verfügbar .
Serialisierung mit Gurke
Die PICKLE-Datei (kann von einem Texteditor wie dem Editor geöffnet werden) enthält Folgendes (serialisierte Daten):
€} q (KX 6qKX 2qKX fqu.
Deserialisierung mit Gurke
Ausgabe:
{1: '6', 2: '2', 3: 'f'}
quelle