JSON é um formato que codifica objetos em uma sequência. Serialização significa converter um objeto nessa cadeia , e desserialização é sua operação inversa (converter cadeia -> objeto) .
Ao transmitir dados ou armazená-los em um arquivo, é necessário que os dados sejam cadeias de bytes, mas objetos complexos raramente estão nesse formato. A serialização pode converter esses objetos complexos em cadeias de bytes para esse uso. Após a transmissão das cadeias de bytes, o receptor precisará recuperar o objeto original da cadeia de bytes. Isso é conhecido como desserialização.
Digamos que você tenha um objeto:
{foo:[1,4,7,10], bar:"baz"}
serializar em JSON irá convertê-lo em uma string:
'{"foo":[1,4,7,10],"bar":"baz"}'
que pode ser armazenado ou enviado através de fio para qualquer lugar. O receptor pode desserializar essa string para recuperar o objeto original. {foo: [1, 4, 7, 10], bar: "baz"}.
@kennytm - Estou tentando entender como enviar coisas pelo fio. Independentemente de eu usar codificação binária ou usar json, xml ou proto buf - os dados sempre precisam estar em bytes antes de serem enviados pela conexão. Isso é verdade?
Nirmal 31/03
1
@Nirmal Sim. ___
kennytm 31/03
1
Um dispositivo mnemônico eu uso para lembrar a diferença é que "serialização transforma objetos em números de série"
Janac Meena
1
Então, por que não apenas"{foo: [1, 4, 7, 10], bar: "baz"}"
panoret 5/11/19
2
As propriedades JSON do @EnricoMariaDeAngelis devem estar entre aspas. É uma necessidade - confira o primeiro exemplo no wiki: en.wikipedia.org/wiki/JSON
Cloud
8
No contexto do armazenamento de dados, serialização (ou serialização) é o processo de converter estruturas de dados ou estado do objeto em um formato que pode ser armazenado (por exemplo, em um arquivo ou buffer de memória) ou transmitido (por exemplo, através de uma conexão de rede link) e reconstruído mais tarde. [...]
A operação oposta, extraindo uma estrutura de dados de uma série de bytes, é desserialização . Da Wikipedia
No Python, "serialização" nada mais faz do que apenas converter a estrutura de dados fornecida (por exemplo, a dict) em seu pendente JSON válido (objeto).
Os Python Trueserão convertidos em JSONs truee o próprio dicionário será encapsulado entre aspas.
Você pode identificar facilmente a diferença entre um dicionário Python e JSON por seus valores booleanos:
Python : True/ False,
JSON : true/false
O módulo interno Python jsoné a maneira padrão de fazer serialização:
Explicação de serializar e desserializar usando Python
No python, o módulo pickle é usado para serialização. Portanto, o processo de serialização é chamado de decapagem no Python. Este módulo está disponível na biblioteca padrão do Python .
Serialização usando pickle
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()
O arquivo PICKLE (pode ser aberto por um editor de texto como o bloco de notas) contém este (dados serializados):
O usuário perguntou sobre JSON não pickle, no entanto. Isso é um tanto offtopic.
smci 14/12/19
Esta é a pergunta original: O que é desserializar e serializar no JSON? Eu usei o módulo pickle do Python para demonstrar a idéia. Eu usei uma ferramenta para explicar uma ideia. Você está focando mais na ferramenta do que na ideia.
Respostas:
JSON é um formato que codifica objetos em uma sequência. Serialização significa converter um objeto nessa cadeia , e desserialização é sua operação inversa (converter cadeia -> objeto) .
Ao transmitir dados ou armazená-los em um arquivo, é necessário que os dados sejam cadeias de bytes, mas objetos complexos raramente estão nesse formato. A serialização pode converter esses objetos complexos em cadeias de bytes para esse uso. Após a transmissão das cadeias de bytes, o receptor precisará recuperar o objeto original da cadeia de bytes. Isso é conhecido como desserialização.
Digamos que você tenha um objeto:
serializar em JSON irá convertê-lo em uma string:
que pode ser armazenado ou enviado através de fio para qualquer lugar. O receptor pode desserializar essa string para recuperar o objeto original.
{foo: [1, 4, 7, 10], bar: "baz"}
.fonte
"{foo: [1, 4, 7, 10], bar: "baz"}"
No Python, "serialização" nada mais faz do que apenas converter a estrutura de dados fornecida (por exemplo, a
dict
) em seu pendente JSON válido (objeto).True
serão convertidos em JSONstrue
e o próprio dicionário será encapsulado entre aspas.True
/False
,true
/false
json
é a maneira padrão de fazer serialização:Exemplo de código:
Fonte: realpython.com
fonte
Explicação de serializar e desserializar usando Python
No python, o módulo pickle é usado para serialização. Portanto, o processo de serialização é chamado de decapagem no Python. Este módulo está disponível na biblioteca padrão do Python .
Serialização usando pickle
O arquivo PICKLE (pode ser aberto por um editor de texto como o bloco de notas) contém este (dados serializados):
€} q (KX 6qKX 2qKX fq.
Desserialização usando pickle
Resultado:
{1: '6', 2: '2', 3: 'f'}
fonte