ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • json 파서를 이용한 파싱
    javascript ES5 정리 2020. 9. 22. 01:56

    공공데이터를 불러오면 다음과 같이 json 데이터가 문자열 형식으로 날라온다.

    <!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>
         var data = '{id:"oh",pw:23}';
         console.log(data.id);
        </script>
    </body>
    </html>

    문자열 형식으로 객체를 생성했기때문에 data.id를 콘솔에 찍어도 데이터값이 제대로 출력되지않는다.

     

    이때 

     

    우리는 저 문자열을 객체화 시키기위해 다음과 같이 파싱작업을 해야한다.

    <!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>
         var data = JSON.parse('{id:"oh",pw:23}');
         console.log(data.id);
        </script>
    </body>
    </html>

     

    어? 

     

    그런데 에러가 발생한다.

    그 이유는 객체의 키값을 문자열 형식으로 제대로 작성하지않았기때문이다. 

    var data = JSON.parse('{id:"oh",pw:23}'); 

    수정

    var data = JSON.parse('{"id":"oh", "pw":23}');

     

    다음과 같이 키값을 문자열 형식으로 제대로 기입하면 데이터가 정상적으로 출력이 된다.

     

    하지만 이러한 과정이 너무 귀찮다.

    자동으로 키값에 쌍 따옴표를 붙여주는 기능이 있다.

    <!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>
            var data = JSON.parse('{"id":"oh", "pw":23}');
            console.log(data.id);
            console.log(data.pw);
    
    ///////////이 기능
            var data2 = {id:"my", pw:23};
            var json = JSON.stringify(data2); 
            console.log(json);
    //////////
        </script>
    </body>
    </html>

    JSON의 stringify메서드를 사용하면 data2객체의 키값을 {"id":"my","pw":23} 이렇게 변경시켜준다.

     

     

    'javascript ES5 정리' 카테고리의 다른 글

    js 함수  (0) 2020.09.22
    js ===, !== 연산자  (0) 2020.09.22
    js 데이터객체, json 표기법  (0) 2020.09.22
    js - object 객체  (0) 2020.09.22
    js 배열  (0) 2020.09.22
Designed by Tistory.