web-dev-qa-db-fra.com

Qu'est-ce que la désérialisation et la sérialisation en JSON?

Je suis nouveau dans JSON. Maintenant, je dois utiliser JSON pour Flash ActionScript 3.0. J'ai donc trouvé une bibliothèque pour JSON et j'ai vu les termes "désérialiser" et "sérialiser". Que signifient-ils?

90
coderex

JSON est un format qui code les objets dans une chaîne. Sérialisation signifie convertir un objet dans cette chaîne, et la désérialisation est son opération inverse.

Lors de la transmission ou du stockage de données dans un fichier, les données doivent être des chaînes d'octets, mais les objets complexes sont rarement dans ce format. La sérialisation peut convertir ces objets complexes en chaînes d'octets pour une telle utilisation. Une fois les chaînes d'octets transmises, le destinataire devra récupérer l'objet d'origine à partir de la chaîne d'octets. Ceci est connu sous le nom de désérialisation.

Dis, tu as un objet

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

la sérialisation en JSON le convertira en chaîne:

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

qui peuvent être stockés ou envoyés par fil à n'importe où. Le destinataire peut alors désérialiser cette chaîne pour récupérer l'objet d'origine. {foo: [1, 4, 7, 10], bar: "baz"}.

165
kennytm

Dans le contexte du stockage de données, la sérialisation (ou sérialisation) est le processus de traduction des structures de données ou de l'état de l'objet dans un format pouvant être stocké (par exemple: , dans un fichier ou dans une mémoire tampon) ou transmis (par exemple, via un lien de connexion réseau) et reconstruit ultérieurement. [...]
L’opération opposée, qui consiste à extraire une structure de données d’une série d’octets, est la désérialisation .

De Wikipedia: Sérialisation

Exemple Python

Ainsi, par exemple, dans Python "la sérialisation" ne fait que convertir la structure de données donnée (par exemple, un dict) en son pendant JSON valide.

Ainsi, Pythons True sera converti en JSON true et le dictionnaire lui-même sera alors encapsulé entre guillemets.

Le module Python json est très utile ici:

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
#   }
# }

Vous pouvez facilement repérer la différence entre un dictionnaire Python et JSON par leurs valeurs booléennes:

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

Source: realpython.com

4
winklerrr