본문 바로가기
책벌레와 벌레 그 사이 어딘가/개념쌓기

[개념쌓기]JSON의 직렬화/역직렬화

by veganwithbacon 2022. 8. 13.
반응형
역경은 인간을 낳고,행운은 괴물을 낳는다

 

@JsonIgnore와 관련된 것들에 대해 알아보다가 확실히 모르는 용어에 대해 우선 알아보기로 했다

 

  JSON? ( JavaScript Object Notation)

  : 자바스크립트 객체를 문자열로  표현하는 데이터 포맷

 

자바 스크립트 객체 리터럴과 유사하지만 객체가 아닌 문자열뿐이며, 이를 통해 다른 도메인과 데이터를 주고 받을 수 있다

XML 이나 다른 데이터 포멧이 비해 간결하며,손쉽게 자바스크립트 객체로 변환할 수 있어서. 웹에서

Server - Client 간의 데이터 교환에 주로 JSON을 사용한다


  JSON 표기법

JSON은 자바스크립트 객체와 유사하나 표기법이 다르다

표기법이 간결하나 문법에 예민하여,정확한 사용이 필요하다

{
	"name" : "Alice",
	"age" : 27,
    "gender" : "male",
    "location" : "Incheon",
    "marriage" : false,
    "friends" : ["Lee","Shin","Jang"]
}

-  key는 반드시 큰따옴표로 둘러싸야한다

- value 값은 string, number, boolean,object,null 이 올 수 있다

- 키-값은 : (콜론)기호를 통해 구분,키-값 쌍은, (쉼표) 기호로 구분한다

 


  직렬화 & 역직렬화

  직렬화(Serialization) : 컴퓨터 메모리 상에 존재하는 객체(Object) -> 문자열(string)로 변환하는 것

JSON 메소드를 통해 Object를 JSON 문자열 데이터로 변경

var min = {
  name : 'min',
  age : 27,
  gender : 'male',
  location : 'Incheon',
  marriage : false,
  friends : ['Kim', 'Lee', 'Park']
}

var serialize_json = JSON.stringify(min);

console.log("Serialize 결과 타입 : ", typeof serialize_json);
console.log("Serialize 결과 : ", serialize_json);

// Serialize 결과 타입 :  string
// Serialize 결과 :   {"name":"min","age":27,"gender":"male","location":"Incheon","marriage":false,"friends":["Kim","Lee","Park"]}

 

 

 

 

 

  역직렬화(Deserialization) or 파싱(Parsing) : 문자열  -> 자바스크립트 객체로 반환하는 것

JSON.parse(변수명) 을 사용

JSON문자열 데이터를 JS Object로 변경가능

var deserialzie_object = JSON.parse(serialize_json);

console.log("Deserialize 결과 타입 : ", typeof deserialzie_object);
console.log("Deserialize 결과 : ", deserialzie_object);

// Deserialize 결과 타입 :  object
// Deserialize 결과 :  {
//   name: 'min',
//   age: 27,
//   gender: 'male',
//   location: 'Incheon',
//   marriage: false,
//   friends: [ 'Kim', 'Lee', 'Park' ]
// }

 

참고문헌:

https://curryyou.tistory.com/359

http://daplus.net/json-json%EC%97%90%EC%84%9C-%EC%A7%81%EB%A0%AC%ED%99%94-%ED%95%B4%EC%A0%9C-%EB%B0%8F-%EC%A7%81%EB%A0%AC%ED%99%94-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/

https://wookoa.tistory.com/94

반응형

댓글