웹서버와 클라이언트 사이에서 통신을 하기 위해서는 문자열을 이용합니다. 클라이언트에서 사용하는 JavaScript객체를 웹서버로 보내기 위해서 많이 사용하는 것이 JSON입니다.
JSON의 Stringity()라는 함수를 이용해 JavaScript 객체를 JSON 문자열로 변환할 수 있습니다.
JSON.Stringity(value[, replace[, space]])
사적적 의미 : (컴퓨터로) 텍스트 표현으로 변환하다
즉, 입력받은 값을 JSON 문자열로 변환한다는 의미가 된다.
JSON string (문자열)로 변환하고자 하는 JavaScript 객체
가독성을 위해 출력 JSON 문자열에 공백을 삽입하는데 사용되는 String 또는 Number 객체
JSON String으로 변환하고자 하는 value 값은 필수 입력 값이지만 객체 속성을 선택 / 필터링하지 위한 replacer와 공백 문자열을 지정하는 space는 선택적으로 입력 또는 입력하지 않아도 된다.
Boolean, Number 및 String 객체들이 변환될때는 각각의 primitive type에 맞는 값으로 변환됩니다.
console.log(JSON.Stringify({x:1004, y: 7942}));
console.log(JSON.Stringify({x:'true', y: 'false'}));
console.log(JSON.Stringify({x:true, y: false}));
X 및 y 값을 입력한 결과를 JSON 문자열로 변환된 값은 아래와 같습니다.
만약 변환 중 undefined, 함수 또는 symbol이 객체에서 발견되면 undefined가 리턴되며 array에서 발견되면 null을 리턴합니다.
console.log(JSON.Stringify(undefined);
console.log(JSON.Stringify(function(){});
console.log(JSON.Stringify(symbol(''));
위 코드 결과값은 모두 undefined 입니다.
객체에서 undefined, 함수 또는 symbol이 들어왔기 때문에 undefined로 리턴되었습니다.
console.log(JSON.Stringify([undefined, function(){}, symbol(''));
위 코드는 객체가 아닌 배열(array)에 undefined, 함수 그리고symbol이 들어왔습니다. 결과는 모두 null입니다.
배열에서 위 값들이 들어올 경우 null로 리턴됩니다.
마찬가지로 NaN null Infinity 등은 모두 null로 리턴됩니다.
console.log(JSON.stringify([NaN, null, Infinity]));