stringify
→ stringfy(obj)
stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
(개념설명)
any 의 어떤 타입의 object 를 받아와서 JSON의 string 타입으로 변환해 주며,
replacer? 을 전달해도 되고 안 해도 되는 callback 함수가 있다.
즉, object를 string 으로 변환할 떄, string이 만들어지는 과정을 조금 더 세밀하게 조정하고 싶다면 replacer 함수를 이용하면 된다.
Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
(JavaScript 값을 JSON (JavaScript Object Notation) 문자열로 변환합니다.)
@param value A JavaScript value, usually an object or array, to be converted.
(@param value 는 변환 할 JavaScript 값 (일반적으로 객체 또는 배열)입니다.)
@param replacer A function that transforms the results.
(@param replacer 는 결과를 변환하는 함수입니다. -> callback 함수)
@param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
(@param space 는 쉽게 읽을 수 있도록 반환 값 JSON 텍스트에 들여 쓰기, 공백 및 줄 바꿈 문자를 추가합니다.)
(오버로딩 - overloading)
stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;
@param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.
(@param replacer 는 문자열화할 개체 속성을 선택하기위한 승인 된 목록 역할을하는 문자열 및 숫자의 배열입니다.)
@param value(any)
// 01. boolean true 값을 string true 로 변환
let json = JSON.stringify(true);
console.log(json); // true
// 02. 배열 자체를 string 으로 변환
json = JSON.stringify(['apple', 'banana']);
console.log(json); // ["apple","banana"]
// 03. number 1994 값을 string 으로 변환
json = JSON.stringify(1994);
console.log(json); // 1994
// 04. object rabbit 값을 string 으로 변환
const rabbit = {
name: 'tori',
color: 'white',
size: null,
birthDate: new Date(),
jump: () => {
console.log(`${name} can Jump!`);
return 1;
}
//symbol: Symbol("id")
};
json = JSON.stringify(rabbit);
console.log(json);
// {"name":"tori","color":"white","size":null,"birthDate":"2021-03-18T08:00:08.677Z"}
// ※ jump와 같은 함수는 JSON 의 string의 변환에 포함되지 않는다.
// ※ JavsScript 에 만 존재하는 함수 Symbol 함수도 JSON 의 string의 변환에 포함되지 않는다.
@param value, @param replacer
// 01. object value 조정하여 변환하기 (1)
// 배열을 통해 변환 --> replacer?: (number | string)[] | null) => any
json = JSON.stringify(rabbit, ['name', 'color', 'size']);
console.log(json); // {"name":"tori","color":"white","size":null}
// --> object rabbit 값을 세밀조정하여 string 으로 변환
// 02. object value 조정하여 변환하기 (2)
// callback 함수를 통해 변환 --> replacer?: (this: any, key: string, value: any) => any
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return value;
});
console.log(json);
// {"name":"tori","color":"white","size":null,"birthDate":"2021-03-18T08:21:21.981Z"}