Web-Frontend/JavaScript

[JS] JSON타입으로 변경 후 테이블 생성하기

송 이 2024. 4. 5. 17:58
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            text-align: center;
        }
        table{
            border: 1px solid black;
        }

        th, td{
            border: 1px solid #444444;
        }
        .content{
            width: 800px;
            height: 300px;
        }
        #fileimg{
            width: 100px;
        }
        img{
            width: 300px;
            height: 200px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr id="thead">
                <td>ADDRESS</td><td>ADMIN_NAME</td><td>CONTENT</td><td>DOJIJUNG_NO</td><td>JIJUNG_DATE</td><td>MYONGCHING</td><td class="fileimg">FILEURL</td>
            </tr>
        </thead>
        <tbody id="tbody">
            
        </tbody>
    </table>

    
    <script>
        /* Javascript 샘플 코드 */

        const tbody = document.getElementById("tbody");
        const thead = document.getElementById("thead");
        
        var xhr = new XMLHttpRequest();
        var url = 'http://apis.data.go.kr/6480000/gyeongnamcultural/gyeongnamculturallist'; /*URL*/
        var queryParams = '?' + encodeURIComponent('serviceKey') + '='+'b8YK7SXLrsC0%2F82KZv4LSbh%2FUxPJVb%2BZxLLV64BfAzLCgI9Mt77BfwDhkjY8AwEiNUfHykomfYkElEPr5K5dDw%3D%3D'; /*Service Key*/
        queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent('1'); /**/
        queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent('10'); /**/
        queryParams += '&' + encodeURIComponent('resultType') + '=' + encodeURIComponent('json'); /**/
        xhr.open('GET', url + queryParams);

        xhr.onreadystatechange = function () {
            if (this.readyState == 4) {
                //document.write('Status: '+this.status+'nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'nBody: '+this.responseText);
                
                //문자열을 자바스크립트 객체로 바꿔보자 -> 문자열의 형태가 자바스크립트 객체 형태(JSON)인가?
                //객체 -> 문자열(JSON.stringify()), 문자열 --> 객체(JSON.parse())
                              
                let objs = JSON.parse(this.responseText);
                console.log(objs);
  
                for(let key in objs){
                    console.log(key); //키
                    console.log(objs[key].body.items.item);
                    console.log(objs[key].body.items.item[0]);
                    console.log(objs[key].body.items.item[0].ADDRESS1); //값

                    let value = objs[key].body.items.item;
                    console.log(value[0]);
                    
                    const list = [];
                    list.push(key);
                    console.log(list);


                    for(let i=0; i<value.length; i++){
                        tbody.innerHTML = tbody.innerHTML+"<tr><td>"+value[i].ADDRESS1+"</td><td>"+value[i].ADMIN_NAME+"</td><td class='content'>"+value[i].CONTENT+"</td><td>"+value[i].DOJIJUNG_NO+"</td></td>"+"</td><td>"+value[i].JIJUNG_DATE+"</td></td>"+"</td><td>"+value[i].MYONGCHING+"</td></td>"+"</td><td id='fileimg'><img src="+value[i].fileurl1+"></td></tr>";
                        
                    }

                    // const list = [];
                    // list = objs[key].body.items.item;
                    // console.log(list);

                    
                }

                    

            }
        };


        xhr.send('');

    </script>
</body>
</html>