javascript) JSON.stringify - MSDN

북마크 추가

 

JSON.stringify 함수(JavaScript)

 

변환 된 JavaScript JavaScript 객체 표기법 (JSON) 문자열 값입니다.


JSON.stringify(value [, replacer] [, space])

매개 변수

value

필수적 요소로서, A JavaScript 개체 또는 배열을 변환 하려면 일반적으로 값입니다.

replacer

선택적 요소로서, 함수 또는 배열 변환 결과입니다.

경우 replacer 함수를 JSON.stringify 키와 각 멤버의 값을 전달 하는 함수를 호출 합니다. 반환 값은 원래 값 대신 사용 됩니다. 함수가 반환 하는 경우 undefined, 멤버를 제외 합니다. 루트 개체에 대 한 키는 빈 문자열: "" 합니다.

경우 replacer 는 멤버만 배열의 값은 변환 키를 사용 하 여 배열 합니다. 멤버 변환 순서 배열에 있는 키의 순서와 같습니다. replacer 배열이 무시 됩니다 경우는 value 인수는 배열도.

space

선택적 요소로서, 쉽게 읽을 수 있도록 반환 JSON 텍스트 들여쓰기, 공백 및 줄 바꿈 문자를 추가 합니다.

경우 space 를 생략 하면 반환 값은 추가 공백 없이 생성 됩니다.

경우 space 숫자, 공백을 각 수준에서 지정된 된 수를 사용 하 여 반환 값 텍스트 들 여 씀. 경우 space 가 10 보다 큰 텍스트를 공백 들여쓰기 10.

경우 space 비어 있지 않은 문자열을 각 수준에서 문자열의에서 문자를 사용 하 여 들여쓴 텍스트 반환 값 예: '\t'.

경우 space 10 문자 보다 긴 문자열은 처음 10 개의 문자를 사용 합니다.

반환 값

JSON 텍스트를 포함 하는 문자열입니다.

예외

예외

조건

치환 인수가 잘못되었습니다.

replacer 인수는 함수 또는 배열입니다.

값 인수에 순환 참조를 사용하는 것은 지원되지 않습니다.

value 인수에 순환 참조가 있습니다.

설명

경우 valuetoJSON 메서드는 JSON.stringify 해당 메서드의 반환 값을 사용 하 여 함수. 경우의 반환 값은 toJSON 메서드는 undefined, 구성원은 변환 되지 않습니다. 개체를 JSON 표현 자체를 확인할 수 있습니다.

없는 JSON 표현을 같은 값 undefined을 변환 하지 것입니다. 개체에서 들이 삭제 됩니다. 배열에 null 인 대체 있습니다 됩니다.

문자열 값 시작 및 끝 인용 부호 문자입니다. 모든 유니코드 문자 백슬래시를 사용 하 여 이스케이프 해야 합니다 문자를 제외 하 고 따옴표로 묶어야 할 수도 있습니다. 문자 앞에 백슬래시 해야 합니다.

  • 인용 부호 (' ')

  • 백슬래시(\)

  • 백스페이스 (b)

  • 이상한 (f)

  • 줄 바꿈 문자 (n)

  • 캐리지 리턴 (r)

  • 가로 탭 (t)

  • 네 개의 16 진수 숫자 (uhhhh)

실행 순서

Serialization 프로세스 중 경우는 toJSON 메서드가 존재는 value 인수를 JSON.stringify 먼저 호출 하는 toJSON 메서드. 존재 하지 않는 경우 원래 값을 사용 합니다. 다음 경우에는 replacer 인수를 입력 값 (원래 값 또는 toJSON 반환 값)의 반환 값으로 대체 됩니다 여 replacer 인수. 공백을 선택적 기준 값에 추가 되는 마지막으로, space 인수를 최종 JSON 텍스트를 생성 합니다.

예제

이 예제에서는 JSON.stringify 변환 하는 contact JSON 텍스트 개체. memberfilter 배열 즉만 정의 되는 surnamephone 멤버 변환 됩니다. firstname 멤버를 생략 합니다.


var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var memberfilter = new Array();
memberfilter[0] = "surname";
memberfilter[1] = "phone";
var jsonText = JSON.stringify(contact, memberfilter, "\t");
document.write(jsonText);
// Output: 
// { "surname": "Aaberg", "phone": [ "555-0100", "555-0120" ] }

이 예제에서는 JSON.stringify 배열을 사용 합니다. replaceToUpper 함수는 배열에 있는 모든 문자열을 대문자로 변환 합니다.


var continents = new Array();
continents[0] = "Europe";
continents[1] = "Asia";
continents[2] = "Australia";
continents[3] = "Antarctica";
continents[4] = "North America";
continents[5] = "South America";
continents[6] = "Africa";

var jsonText = JSON.stringify(continents, replaceToUpper);

function replaceToUpper(key, value) {
    return value.toString().toUpperCase();
}

//Output:
// "EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA"

이 예제는 toJSON 문자열 값을 대문자로 변환 하는 메서드.


var contact = new Object(); 
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

contact.toJSON = function(key)
 {
    var replacement = new Object();
    for (var val in this)
    {
        if (typeof (this[val]) === 'string')
            replacement[val] = this[val].toUpperCase();
        else
            replacement[val] = this[val]
    }
    return replacement;
};

var jsonText = JSON.stringify(contact);
document.write(jsonText);

// Output:
{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}



'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}' 

 

 

 

AD
관리자
2014-08-11 07:50
SHARE