반응형
// XHR (데이터 요청과 받아올 수 있는 Object)
// XMLHttpRequest로 맨 처음 개발 당시에는 XML을 이용했지만 추후에는 여러 데이터 format으로 사용 가능
// 이름만 XML인 거지 다양한 format 사용 가능하다.
// 문자열 → Object (Serialize) 
// Object → 문자열 (Deserialize)

const rabbit = {
    name : 'tomi',
    color : 'white',
    size : 'small'
}

// JSON.stringify = String to JsonObject
let json = JSON.stringify(rabbit); // {"name":"tomi","color":"white","size":"small"}
console.log(json);

// 원하는 키만 JSON 변환 가능
json = JSON.stringify(rabbit, ['name']); 
console.log(json); // {"name":"tomi"}

// jsonObject의 forEach
json = JSON.stringify(rabbit, (key, value) => {
    console.log(`key : ${key}, value : ${value}`);
    return value; // 필수
   // return key === 'name'? 'tomi' : value; // key가 name인 경우 tomi를 넣어 return 해준다.
});

// key : , value : [object Object] // 최상위
// key : name, value : tomi
// key : color, value : white
// key : size, value : small


// jsonObject to String
const obj = JSON.parse(json);
console.log(`obj : ${obj}`) // {"name":"tomi","color":"white","size":"small"}
console.log(`name : ${obj.name}`); // name : tomi


const obj2 = JSON.parse(json, (key, value) =>{
    console.log(`key : ${key}, value : ${value}`);
    return value; 
});

// key : name, value : tomi
// key : color, value : white
// key : size, value : small
// key : , value : [object Object]
반응형