development

JSON에서 deserialize 및 serialize 란 무엇입니까?

big-blog 2020. 8. 28. 07:56
반응형

JSON에서 deserialize 및 serialize 란 무엇입니까?


저는 JSON이 처음입니다. 이제 Flash ActionScript 3.0에 JSON을 사용해야합니다. 그래서 JSON 용 라이브러리 하나를 찾았고 "비 직렬화"와 "직렬화"라는 용어를 보았습니다. 무슨 뜻입니까?


JSON은 객체를 문자열로 인코딩하는 형식입니다. 직렬화 는 객체를 해당 문자열로 변환하는 것을 의미하며 역 직렬화는 그 반대 작업입니다.

데이터를 전송하거나 파일에 저장할 때 데이터는 바이트 문자열이어야하지만 복잡한 개체는이 형식이 거의 없습니다. 직렬화는 이러한 복잡한 개체를 이러한 사용을 위해 바이트 문자열로 변환 할 수 있습니다. 바이트 문자열이 전송 된 후 수신자는 바이트 문자열에서 원래 객체를 복구해야합니다. 이를 역 직렬화라고합니다.

물건이 있다고 말해

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

JSON으로 직렬화하면 문자열로 변환됩니다.

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

저장하거나 유선을 통해 어디로 든 보낼 수 있습니다. 그런 다음 수신자는이 문자열을 역 직렬화하여 원래 개체를 반환 할 수 있습니다. {foo: [1, 4, 7, 10], bar: "baz"}.


데이터 저장의 맥락에서 직렬화 (또는 직렬화)는 데이터 구조 또는 객체 상태를 저장 (예 : 파일 또는 메모리 버퍼에) 또는 전송 (예 : 네트워크 연결을 통해) 할 수있는 형식으로 변환하는 프로세스입니다. 링크) 및 나중에 재구성됩니다. [...]
일련의 바이트에서 데이터 구조를 추출하는 반대 작업은 deserialization 입니다.

Wikipedia에서 : 직렬화

Python 예

예를 들어 파이썬에서 "직렬화"는 주어진 데이터 구조 (예 : a dict)를 유효한 JSON 펜던트로 변환하는 것 외에는 아무것도하지 않습니다 .

따라서 Python True은 JSON으로 변환되고 true사전 자체는 따옴표로 캡슐화됩니다.

Python 모듈 json은 여기에서 매우 유용합니다.

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

부울 값으로 Python 사전과 JSON의 차이점을 쉽게 찾을 수 있습니다.

  • 파이썬 : True/ False,
  • JSON : true/false

출처 : realpython.com


이거 한번 해봐:

Dim jss As New JavaScriptSerializer()

Dim jcon = "{""type"":""clientlist"",""client_list"":[""client 1"",""client 2""]}"

Dim oListjs As List(Of MyModel) = jss.Deserialize(Of List(Of MyModel))(jcon)

Public Class MyModel

Public Property Type() As String

Public Property Client_list() As String()

End Class

참고 URL : https://stackoverflow.com/questions/3316762/what-is-deserialize-and-serialize-in-json

반응형