sharingStorage

JSON 본문

Front-End/Javascript

JSON

Anstrengung 2022. 3. 17. 21:35

JSON이란?

JSON은 JavaScript Object Notation의 약자로서 데이터를 문자열의 형태로 나타내기 위해서 사용된다.

이름이 암시하듯 JSON은 본래 자바스크립트에서 파생되었지만 현재는 거의 표준으로 자리잡아 대부분의 다른 프로그래밍 언어에서도 지원하는 데이터 포멧이다.

특히 네트워크(http 통신)를 통해 서로 다른 시스템들이 데이터를 주고받을 때 많이 사용되기 때문에 어렵지 않게 접할 수 있다.

 

자바스크립트에서는 JSON 포멧의 데이터를 간편하게 다룰 수 있도록 JSON이라는 객체를 내장하고 있으며 JSON 내장 객체는 자바스크립트와 JSON 문자열 간의 상호 변환을 수행해주는 두 개의 메서드를 제공한다.  

 

 

JSON.stringfy();

JSON.stringfy() 메서드는 자바스크립트 값이나 객체를 JSON문자열로 변환하는 것이다.

 

특성

 JSON.stringfy(value) 에서 value가 number 또는 boolean일 경우 그 값 자체를 가져오고, 데이터 타입은 string(문자열)이 된다.

JSON.stringfy(27) //27


JSON.stringfy(true) // true


JSON.stringfy('string ljh') //'string ljh'

 

 

 value가 배열일 경우 배열이 string이 된다.

 value가 배열이고 배열안에 undefined, 함수, 심볼이 있는 경우 이런 값들은 null로 변환된다.

JSON.stringfy(["string str", function(){return 0;}, undefinded, 99, Symbol('')]) 
//"[string str],null,null,99,null"

 

 value가 객체일 경우 객체가 string이 된다.

 객체안에 undefined, 함수, 심볼이 있는 경우 이런값들은 생략된다.

JSON.stringfy({x:1, y:2}); 
// '{"x":1,"y":2}'

JSON.stringfy({name: 'LEE', x:undefined, y: function(){return 0;}}); 
// '{"name":"LEE"}'

 

반환값

메서드의 반환값은 주어진 값과 대응하는 JSON문자열이다.

 

 

JSON.parse();

JSON문자열을 자바스크립트 객체로 변환할 때 사용한다.

const str = `{
  "name": "LEE",
  "age": 25,
  "hobbies": ["독서", "농구"],
  "jobs": null
}`;


const obj=JSON.parse(str);

//이하 obj 값
 {
  name: "LEE",
  age: 25,
  hobbies: ["독서", "농구"],
  jobs: null
  }

 

출력결과를 자세히 보면 JSON문자열에선 키(key)를 쌍따옴표로 감싸줘야 하지만 JavaScript객체에서는 쌍따옴표를 꼭 사용할 필요는 없다. (특수 문자나 영어 외의 언어와 같이 키로 허용되지 않는 문자는 쌍따옴표 사용 필요)

 

이렇게 JavaScript 객체로 변환된 데이터는  . 이나 [] 기호를 사용하여

 

 

반환값

메서드의 반환값은 주어진 JSON 문자열에 대응하는 Object.

 

JSON형태의 [object Object] 출력

json 형태의 object변수는 일반적으로 alert이나 console.log을 사용해도

[object Object] 라고만 나온다. 

 

그렇기에 jsonObject라는 이름의 json형태의 object변수는 아래와 같이 출력해서 값을 확인해볼 수 있다 

const a;
a=JSON.stringfy(jsonObject);

console.log(a);

 

 

 

Reference

 

'Front-End > Javascript' 카테고리의 다른 글

RxJS  (0) 2021.12.29
참조에 의한 객체 복사  (0) 2021.12.28
Comments