JSON.parse(text [, reviver])
예외
text 인수를 수정하여 JSON 구문을 따르도록 합니다. 자세한 내용은 JSON 개체의 BNF 구문 표기법을 참조하십시오.예를 들어, 응답이 순수 JSON이 아닌 JSONP 형식으로 된 경우 응답 개체에서 다음 코드를 사용해 보십시오. JavaScriptvar fixedResponse = response.responseText.replace(/\\'/g, "'"); var jsonObj = JSON.parse(fixedResponse);
text 인수가 JSON.stringify와 같은 JSON 규격 구현으로 serialize되는지 확인합니다. 구문 오류 확인에 유용한 JSLint와 같은 JSON 유효성 검사기에서 text 인수를 실행합니다.
예제
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를 사용하여 문자열을 다시 배열로 변환합니다.
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 개체를 반환합니다.
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 표준
'JAVASCRIPT > 함수' 카테고리의 다른 글
javascript substring, substr 함수를 알아보자 (0) | 2015.10.21 |
---|---|
onKeyPress와 엔터키이벤트사용 (0) | 2015.03.18 |
jQuery API: Forms, Ajax (0) | 2014.08.19 |