본문 바로가기
Frontend/JavaScript

JavaScript : JSON(JavaScript Object Notation)에 대하여

by 코딩쥐 2024. 9. 2.

JSON

JSON은 JavaScript 객체 문법을 따르는 문자 기반의 데이터 포맷으로, JSON 표현식은 사람과 기계 모두 이해하기 쉽고 용량이 작아서 데이터를 전송 등에서 많이 사용된다. JSON의 기본적인 형태는 {key : value}이고, key값이나 value는 항상 쌍따옴표(텍스트 형식)를 이용하여 표기한다. JSON형식에는 null, number, string, array, object, boolean 을 사용할 수 있다. function, date, undefined의 경우 JSON에서 사용이 불가능 하다. 

  • {"데이터이름": "값"}

JSON 값 변환

  • JSON.stringfy(value, replacer, space)
    - value : javascript의 값이나 객체를 JSON문자열로 변환
    - replacer : [optional] JSON문자열에 포함시킬 객체의 속성들을 선택하는 옵션
    - space : [optional] 가독성을 위해 JSON 문자열의 공백을 조정하는 옵션, 잘 사용하지 않음

  • JSON.parse(text, reviver)
    - text : JSON문자열을 일반 객체나 일반 배열로 변환
    - reviver : [optional] JSON을 반환하기 전에 값을 변환 (function(key, value){} 사용하여 변환)  


JSON 예제

 

JSON.stringfy(value, replacer, space)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // JSON.stringfy(value)
        const obj1 = { name: "코딩쥐", food: "햄버거", url: "https://coding-ji.tistory.com" }
        const obj1_json = JSON.stringify(obj1);
        console.log(obj1_json);

        // JSON.stringfy(value, replacer)
        const obj2 = { name: "코딩쥐", food: "햄버거", url: "https://coding-ji.tistory.com", number: 10 }
        const obj2_json = JSON.stringify(obj2, function(key, value) {
            if (key === "url") {
                return undefined; // "url" 속성 키 제외
            }
            return value; // 나머지 속성은 그대로 반환
        });

        console.log(obj2_json); 


        // JSON.stringfy(value, replacer, space)
        const obj3 = { name: "코딩쥐", food: "햄버거", url: "https://coding-ji.tistory.com", number: 10 }
        const obj3_json = JSON.stringify(obj3, null, "\t")  // \t : 수평탭
        console.log(obj3_json); 
        
    </script>
</body>

</html>

 

JSON.parse(text, reviver) 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const json = `{"name": "코딩쥐", "food": "햄버거", "url": "https://coding-ji.tistory.com"}`
        //JSON.parse(text) 
        const obj1 = JSON.parse(json);
        console.log(obj1);
        //JSON.parse(text, reviver) - "food" 키값을 가진 객체에, ", 치킨" 문자열 연산자로 추가
        const obj2 = JSON.parse(json, function (key, value) {
            return key === "food" ? value + ", 치킨" : value;
        });
        console.log(obj2);

    </script>
</body>

</html>