JavaScript

JS json

테라시아 2024. 12. 1. 17:01

JSON(JavaScript Object Notation)
    - Javascript용 표기 방식
    - REST API 등에서 많이 사용됨

    - JSON 객체는 Object로 변환이 가능하며
      Object도 JSON으로 변환이 가능함

    - JSON.parse : String -> Object
    - JSON.stringify : Object -> String

 

☆ Code

<!doctype html>
<html>
<head>
    <title>JSON</title>
</head>
<body>
    <h1>Javascript JSON <-> Object </h1>
    <hr>
</body>
<script>
    var user = { name: "BTS", members: 7, age: 28 }
    var userJSON = JSON.stringify(user);

    console.log(user);
    console.log(userJSON);

    var user2 = JSON.parse(userJSON);
    console.log(user2);

    user2.members = 8;
    user2.age = 31;
    var userJSON2 = JSON.stringify(user2);
    console.log(userJSON2);

    // 고차원
    function Product(name, price, stock){
        this.name = name;
        this.price = price;
        this.stock = stock;

        // 자신을 json으로 변환하여 저장
        this.json = JSON.stringify(this); 
    }

    var shoe = new Product("Fila", 108000, 10);
    console.log(shoe);
    console.log(shoe.json);
    shoe.price = 110000;
    console.log(shoe.json);  // 생성 당시에 만든 것(수정안됨)

    // naver stock
    var data = '[{"localTradedAt":"2024-11-12","closePrice":"710.52","compareToPreviousClosePrice":"-18.32","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-2.51","openPrice":"728.72","highPrice":"729.07","lowPrice":"707.96"},{"localTradedAt":"2024-11-11","closePrice":"728.84","compareToPreviousClosePrice":"-14.54","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-1.96","openPrice":"744.86","highPrice":"745.42","lowPrice":"727.04"},{"localTradedAt":"2024-11-08","closePrice":"743.38","compareToPreviousClosePrice":"9.86","compareToPreviousPrice":{"code":"2","text":"상승","name":"RISING"},"fluctuationsRatio":"1.34","openPrice":"739.91","highPrice":"746.89","lowPrice":"739.66"},{"localTradedAt":"2024-11-07","closePrice":"733.52","compareToPreviousClosePrice":"-9.79","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-1.32","openPrice":"743.47","highPrice":"743.47","lowPrice":"727.10"},{"localTradedAt":"2024-11-06","closePrice":"743.31","compareToPreviousClosePrice":"-8.50","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-1.13","openPrice":"757.23","highPrice":"761.01","lowPrice":"737.77"},{"localTradedAt":"2024-11-05","closePrice":"751.81","compareToPreviousClosePrice":"-2.27","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-0.30","openPrice":"752.17","highPrice":"756.60","lowPrice":"750.17"},{"localTradedAt":"2024-11-04","closePrice":"754.08","compareToPreviousClosePrice":"25.03","compareToPreviousPrice":{"code":"2","text":"상승","name":"RISING"},"fluctuationsRatio":"3.43","openPrice":"730.50","highPrice":"755.00","lowPrice":"728.11"},{"localTradedAt":"2024-11-01","closePrice":"729.05","compareToPreviousClosePrice":"-14.01","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-1.89","openPrice":"735.67","highPrice":"736.26","lowPrice":"729.05"},{"localTradedAt":"2024-10-31","closePrice":"743.06","compareToPreviousClosePrice":"4.87","compareToPreviousPrice":{"code":"2","text":"상승","name":"RISING"},"fluctuationsRatio":"0.66","openPrice":"734.25","highPrice":"743.22","lowPrice":"728.34"},{"localTradedAt":"2024-10-30","closePrice":"738.19","compareToPreviousClosePrice":"-5.99","compareToPreviousPrice":{"code":"5","text":"하락","name":"FALLING"},"fluctuationsRatio":"-0.80","openPrice":"743.53","highPrice":"746.23","lowPrice":"738.13"}]';
    var stock = JSON.parse(data);
    console.log(stock);

    for(let i=0; i<stock.length; i++){
        if(stock[i].compareToPreviousPrice.text == "하락")
            document.write(stock[i].localTradedAt + " : 망함<br>")
    }
</script>
</html>

'JavaScript' 카테고리의 다른 글

JS dom  (0) 2024.12.03
JS 콜백  (0) 2024.12.02
JS 객체  (0) 2024.12.01
JS 지역변수와 전역변수  (0) 2024.11.26
JS 다이얼로그  (0) 2024.11.26