Maison  >  Article  >  développement back-end  >  Introduction détaillée à la sérialisation et à la désérialisation

Introduction détaillée à la sérialisation et à la désérialisation

零下一度
零下一度original
2017-07-19 16:45:201787parcourir

1. Le concept de sérialisation et de désérialisation

Le processus de la conversion d'un objet en une séquence d'octets est appelée sérialisation de l'objet.
Le processus de restauration d'une séquence d'octets dans un objet est appelé désérialisation d'objet.
La sérialisation des objets a deux utilisations principales :
1) Enregistrer de manière permanente la séquence d'octets de l'objet sur le disque dur, généralement stockée dans un fichier
2) Transmettre la séquence d'octets de l'objet sur le disque dur ; séquence de sections de réseau.

Dans de nombreuses applications, certains objets doivent être sérialisés afin qu'ils puissent quitter l'espace mémoire et être stockés sur le disque dur physique pour un stockage à long terme. Par exemple, le plus courant est l'objet Session sur le serveur Web. Lorsque 100 000 utilisateurs y accèdent simultanément, il peut y avoir 100 000 objets Session, ce qui peut être trop pour la mémoire, de sorte que le conteneur Web sérialise certaines sessions sur le disque dur. disque d'abord, et ainsi de suite. Lorsque vous souhaitez l'utiliser, restaurez l'objet enregistré sur le disque dur dans la mémoire.

Lorsque deux processus communiquent à distance, ils peuvent s'envoyer différents types de données. Quel que soit le type de données, elles sont transmises sur le réseau sous la forme d'une séquence binaire. L'expéditeur doit convertir cet objet Java en une séquence d'octets avant de pouvoir le transmettre sur le réseau ; le destinataire doit restaurer la séquence d'octets en un objet Java.


 

Le processus de sérialisation json consiste à l'écrire dans un file , laissez un autre langage de programmation faire l'appel :

 import json

 info = {"alex":"sb", "test":"dur"}

 avec open("file","w") as f:
  f.write(json.dumps(info))

Le code ci-dessus utilise json pour écrire les informations du dictionnaire d'informations dans un fichier. Le fichier ne peut stocker des informations qu'au format chaîne ou des informations de fichier binaire, et ne peut pas stocker de nombres et d'autres informations. Type de chaîne, vous devez y prêter attention.

Le processus de désérialisation json :

>La désérialisation commence par extraire les informations du dump
pour obtenir une interaction entre les différents langages de programmation
'''avec open(
"file","r")
as f: data = json.loads(f.read()) print(data) print(
type(data))
  print(data[
"alex"])
 
Le code ci-dessus utilisera json Les informations stockées dans le format sont lues comme suit :

 {'test' : 'hard', 'alex' : 'sb'>
 
 sb
 Le code ci-dessus réalise la lecture des informations de la chaîne Demander Concernant la fonction du dictionnaire, en fait, la sérialisation et la désérialisation sont les processus consistant à convertir d'abord le format original en chaîne, puis à le lire afin que l'interaction puisse être réalisée.

Nous pouvons également utiliser d'autres méthodes de sérialisation et de désérialisation. Nous savons qu'il existe une fonction eval() qui peut convertir les informations de chaîne dans le style d'origine, comme suit :

info = [11,22,33,65,33]

avec ouvert ("test.text","w") as f:
  f.write(str(info))    #Utiliserwirte ()Uniquement les informations au format chaîne peuvent être écrites dans le fichier, et d'autres types d'informations ne peuvent pas être écrits

 avec open("test.text","r") as f_obj : data = f_obj.read()

data =
eval(data)
print(type( data))
imprimer(données)
 

Le programme se déroule comme suit :

  [11, 22, 33, 65, 33]
 Dans le processus ci-dessus, nous utilisons la fonction eval() fournie avec python Le processus. La sérialisation et la désérialisation sont implémentées, mais comme la sérialisation et la désérialisation sont implémentées dans le même programme, il n'est pas certain qu'il existe eval() dans d'autres programmes, mais json prend en charge tous les langages de programmation. Par conséquent, json est désormais généralement utilisé pour réaliser l'interaction des informations. entre différents langages de programmation.

Dump et Load implémentent également les fonctions de dumps et de chargements ci-dessus, mais les méthodes d'implémentation sont différentes et la syntaxe est légèrement différente, comme suit :

Dump sérialisation :

import json
info = {
"alex":"sb", "test":"hard"}

with open("file","w") as f:   json .dump(info,f)

charger () Désérialisation :

 import json

 '''Le début de la désérialisation consiste à extraire les informations dans dump pour obtenir différentes interactions entre langage de programmation'''

 avec open("file","r") as f:
data = json. load(f)
  print(data)
  print(type(data))
  print(data["alex" ])
 

Le programme ci-dessus implémente les fonctions de sérialisation et de désérialisation, de dump (informations, chemin du fichier), de chargement (chemin du fichier), de quel fichier lire les informations.

Réaliser l'échange de données entre différents programmes.

Échange de données entre différents programmes, ou conversion des informations de chaîne dans leur forme originale

eval La fonction () ; est également très puissant et peut convertir des informations sous forme de chaîne en informations originales, comme suit :

 >>> ':'workhard'}"
 >>> data = eval(dic)
 >>> data
 {'try ' : 'workhard', 'alex' : 'sb '}

Le programme ne sauvegarde qu'une seule fois, ne se charge qu'une seule fois et ne peut pas vider plusieurs fois. Les dumps sont implémentés dans plusieurs fichiers

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn