JSON에서의 역직렬화 및 시리얼화란 무엇입니까?
JSON에서 "직렬화" 및 "직렬화"라는 용어를 본 적이 있습니다.그것들은 무엇을 의미하는가?
JSON은 문자열 내의 객체를 인코딩하는 형식입니다.serialization은 객체를 그 문자열로 변환하는 것을 의미하며, 역시리얼라이제이션은 객체의 역연산(string 변환 -> 객체)입니다.
데이터를 전송하거나 파일에 저장할 때는 데이터가 바이트 문자열이어야 하지만 복잡한 개체는 이 형식인 경우가 거의 없습니다.직렬화를 통해 이러한 복잡한 개체를 바이트 문자열로 변환할 수 있습니다.바이트 문자열이 전송된 후 수신자는 바이트 문자열에서 원래 개체를 복구해야 합니다.이것을 역직렬화라고 합니다.
예를 들어, 다음과 같은 오브젝트가 있습니다.
{foo: [1, 4, 7, 10], bar: "baz"}
JSON으로 시리얼화하면 문자열로 변환됩니다.
'{"foo":[1,4,7,10],"bar":"baz"}'
저장하거나 전선을 통해 어디든 보낼 수 있습니다.그러면 수신자는 이 문자열을 역직렬화하여 원래 개체를 되찾을 수 있습니다. {foo: [1, 4, 7, 10], bar: "baz"}.
시리얼화 및 디시리얼화
데이터 스토리지에서 직렬화(또는 직렬화)는 데이터 구조 또는 객체 상태를 저장(예를 들어 파일 또는 메모리 버퍼)하거나 전송(예를 들어 네트워크 연결 링크 경유)한 후 나중에 재구성할 수 있는 형식으로 변환하는 프로세스입니다.
일련의 바이트에서 데이터 구조를 추출하는 반대 동작은 역직렬화입니다.
– wikipedia.org
JSON
JSON(JavaScript Object Notation)은 사람이 읽을 수 있는 텍스트를 사용하여 속성-값 쌍과 배열(또는 기타 직렬 가능한 값)로 구성된 데이터 개체를 저장 및 전송하는 개방형 표준 파일 형식 및 데이터 교환 형식입니다.서버와의 웹 애플리케이션 등 전자 데이터 교환에서 다양한 용도로 사용되는 일반적인 데이터 형식입니다.
JSON은 언어에 의존하지 않는 데이터 형식입니다.JavaScript에서 파생되었지만 많은 현대 프로그래밍 언어에는 JSON 형식의 데이터를 생성하고 구문 분석하는 코드가 포함되어 있습니다.JSON 파일명은 .json 확장자를 사용합니다.
– wikipedia.org
Python을 사용한 설명
Python에서 직렬화는 주어진 데이터 구조를 유효한 JSON 펜던트로 변환하는 것(예: Python의 데이터 구조).TrueJSON으로 됩니다.true사전 자체는 문자열로 변환되며, 그 반대도 역직렬화를 위해 변환됩니다.
Python vs. JSON
Python 표현과 JSON 표현 간의 차이를 나란히 비교함으로써 쉽게 발견할 수 있습니다.예를 들어 부울 값을 검사합니다.양쪽 컨텍스트에서 사용되는 기본 유형에 대해서는 다음 표를 참조하십시오.
| 파이썬 | JSON |
|---|---|
True |
true |
False |
false |
None |
null |
int,float |
number |
str)', 2중" 및3""" |
string만)" |
dict |
object |
list,tuple |
array |
코드 예시
Python 모듈 Python 내 python python python pythonjson는 시리얼화 및 시리얼화를 표준화하는 방법입니다.
import json
data = {
'president': {
"name": """Mr. Presidente""",
"male": True,
'age': 60,
'wife': None,
'cars': ('BMW', "Audi")
}
}
# serialize
json_data = json.dumps(data, indent=2)
print(json_data)
# {
# "president": {
# "name": "Mr. Presidente",
# "male": true,
# "age": 60,
# "wife": null,
# "cars": [
# "BMW",
# "Audi"
# ]
# }
# }
# deserialize
restored_data = json.loads(json_data) # deserialize
출처 : realpython.com, geeksforgeeks.org
Python을 사용한 시리얼라이즈 및 디시리얼라이즈
Python에서는 peak module이 시리얼라이제이션에 사용됩니다.따라서 Python에서는 serialization 프로세스를 pickling이라고 부릅니다.이 모듈은 Python 표준 라이브러리에서 사용할 수 있습니다.
피클을 사용한 시리얼화
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()
PIKLE 파일(메모장 등의 텍스트 편집기로 열 수 있음)에는 다음(시리얼화된 데이터)이 포함됩니다.
€}q (KX 6qKX 2qKX fqu).
피클을 이용한 탈직렬화
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
출력:
{1: '6', 2: '2', 3: 'f'}
언급URL : https://stackoverflow.com/questions/3316762/what-is-deserialize-and-serialize-in-json
'programing' 카테고리의 다른 글
| GeoJ 로드SON 오브젝트를 구글 맵 v3에 직접 입력 (0) | 2023.02.26 |
|---|---|
| Woocommerce:폐지된 "woocommerce_add_order_item_meta"를 대체할 후크 (0) | 2023.02.26 |
| 스프링 부트 액추에이터 상태 복귀 DOWN (0) | 2023.02.21 |
| Django를 사용한 React JS - 실제 사용 (0) | 2023.02.21 |
| Woocommerce 3의 주문 항목 보호 데이터 액세스 (0) | 2023.02.21 |