728x90
반응형

JSON(JavaScript Object Notation) 문자열을 개체로 변환합니다.

JSON.parse(text [, reviver])

매개 변수

text

필수적 요소로서, 유효한 JSON 문자열입니다.

reviver

선택적 요소로서, 결과를 변환하는 함수입니다. 이 함수는 개체의 각 멤버에 대해 호출됩니다. 멤버에 중첩된 개체가 포함되어 있으면 중첩된 개체가 부모 개체보다 먼저 변환됩니다. 멤버 각각에 대해 다음이 발생합니다.

  • reviver에서 유효한 값을 반환하면 멤버 값은 변환된 값으로 바뀝니다.

  • reviver에서 수신한 값과 동일한 값을 반환하면 멤버 값은 수정되지 않습니다.

  • revivernull 또는 undefined를 반환하면 멤버가 삭제됩니다.

반환 값

개체 또는 배열입니다.

예외

이 함수로 인해 JavaScript 파서 오류("SCRIPT1014: 잘못된 문자입니다.")가 발생하는 경우 입력 텍스트가 JSON 구문을 따르지 않은 것입니다. 오류를 수정하려면 다음 중 하나를 수행합니다.

  • text 인수를 수정하여 JSON 구문을 따르도록 합니다. 자세한 내용은 JSON 개체의 BNF 구문 표기법을 참조하십시오.

    예를 들어, 응답이 순수 JSON이 아닌 JSONP 형식으로 된 경우 응답 개체에서 다음 코드를 사용해 보십시오.

    JavaScript
    var fixedResponse = response.responseText.replace(/\\'/g, "'");
    var jsonObj = JSON.parse(fixedResponse);
    
  • text 인수가 JSON.stringify와 같은 JSON 규격 구현으로 serialize되는지 확인합니다.

  • 구문 오류 확인에 유용한 JSLint와 같은 JSON 유효성 검사기에서 text 인수를 실행합니다.

예제

다음 예제에서는 JSON.parse를 사용하여 JSON 문자열을 개체로 변환합니다.

JavaScript
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname + ", " + contact.firstname);

// Output: Aaberg, Jesper

다음 예제에서는 JSON.stringify를 사용하여 배열을 JSON 문자열로 변환한 다음 JSON.parse를 사용하여 문자열을 다시 배열로 변환합니다.

JavaScript
var arr = ["a", "b", "c"];
var str = JSON.stringify(arr);
document.write(str);
document.write ("<br/>");

var newArr = JSON.parse(str);

while (newArr.length > 0) {
    document.write(newArr.pop() + "<br/>");
}


// Output:
// ["a","b","c"]
// c
// b
// a

reviver 함수는 ISO(International Organization for Standardization) 날짜 문자열의 JSON 표현을 UTC(협정 세계시) 형식 Date 개체로 변환하는 경우에 사용됩니다. 이 예제에서는 JSON.parse를 사용하여 ISO 형식의 날짜 문자열을 deserialize합니다. dateReviver 함수는 ISO 날짜 문자열처럼 형식이 지정된 멤버의 Date 개체를 반환합니다.

JavaScript
var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';
var dates = JSON.parse(jsontext, dateReviver);
document.write(dates.birthdate.toUTCString());

function dateReviver(key, value) {
    var a;
    if (typeof value === 'string') {
        a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
        if (a) {
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
        }
    }
    return value;
};

// Output:
// Thu, 25 Dec 2008 12:00:00 UTC

요구 사항

지원되는 문서 모드: Internet Explorer 8 표준, Internet Explorer 9 표준, Internet Explorer 10 표준, Internet Explorer 11 표준. 스토어 앱에서도 지원됩니다(Windows 8 및 Windows Phone 8.1). 버전 정보를 참조하십시오.

지원되지 않는 문서 모드: Quirks, Internet Explorer 6 표준, Internet Explorer 7 표준


728x90
반응형

'JAVASCRIPT > 함수' 카테고리의 다른 글

javascript substring, substr 함수를 알아보자  (0) 2015.10.21
onKeyPress와 엔터키이벤트사용  (0) 2015.03.18
jQuery API: Forms, Ajax  (0) 2014.08.19
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,