2017-02-13 6 views
3

JSON.stringify() 메서드는 JavaScript 값을 JSON 문자열로 변환하고, 대체 함수가 지정된 경우 값을 선택적으로 바꾸거나 선택적으로 지정된 속성 만 포함하는 경우 선택적으로 치환기 배열이 지정되고있는 경우.JSON.stringify (value [, replacer [, space]]

함수가 replacer 매개 변수로 사용되면 두 개의 매개 변수가 사용되며 키와 값은 문자열입니다. 키가 발견 된 오브젝트는 replacer의 this 매개 변수로 제공됩니다. 처음에는 문자열 화되는 객체를 나타내는 빈 키를 사용하여 호출 된 다음 문자열 화되는 객체 또는 배열의 각 속성에 대해 호출됩니다.

제 질문은이 함수의 첫 번째 호출의 목적은 무엇입니까? 이 문서에는 행동/영향이 명시되어 있지 않습니다.

+0

질문을 명확하게하기 위해 몇 가지 예를들 수 있습니까? –

+0

그들이 신중하게 편리한 조건을 선택하는 방법 웃기는 일. 'key.indexOf ('PUBLIC_') === 0'과 같은 다른 것을 사용하기로 결정하면 그냥 깨질 것입니다. – Qwerty

답변

0

체크 아웃 MSDN on JSON.stringify : 루트 개체에 대한

의 핵심은 빈 문자열 "".

그래서 이것은 단지 루트 객체입니다.

그것은 MDN에 대한 설명과 같은 의미가

이 그것의 첫 번째 처리되는 루트 객체에 대해 호출을받을 의미를 호출되는 처음

빈 키 사용

그것은 빈 문자열입니다. 객체를 나타내는

다시 루트 개체를 의미

을도 캐릭터 라인된다.

개체의 특성에 빈 키를 사용할 수 있습니다. 따라서 키의 빈 문자열이 루트 객체가 처리되고 있다는 것을 확실하게 알 수 있다고 생각하지 마십시오.

+1

귀하의 의견을 주셔서 감사하지만, 나는 아직도 우리가 replacer 함수에 전달 된이 빈 키가 왜 필요한지 이해할 수 없습니다. 이것에 대한 유스 케이스가 있습니까? 객체를 문자열로 변환하는 데 필요한 속성과 값이 전부 아닌가? – samxy

+0

문자열 화를 위해 전달한 객체는 속성의 값이 아니므로 키가 없습니다. 나는 전체 경로를 제공하는 프레임 워크를 선호합니다. 예를 들어'key = ".foo.bar [5] .baz"; 값 = 42'. 경로를 배열로 가져 오는 옵션을 사용하면'key = [ "foo", "bar", 5, "baz"]'대신에. 그런 다음 루트 요소는 빈 키 (' ""또는'[]') 만 갖습니다. –