JSON stringify 방법 원리 및 실례 해석
문법
JSON.stringify(value[, replacer[, space]])
매개변수 설명:value:
변환할 JavaScript 값(일반적으로 객체 또는 배열)이 필요합니다.
replacer:
선택 사항입니다.결과를 변환하는 함수나 그룹입니다.
replacer가 함수이면 JSON.stringify는 이 함수를 호출하여 모든 구성원의 키와 값을 전송합니다.원래 값이 아닌 반환 값을 사용합니다.이 함수가 undefined로 되돌아오면 구성원을 제외합니다.루트 객체의 키는 ""빈 문자열입니다.
만약replacer가 하나의 그룹이라면, 이 그룹에서 키 값을 가진 구성원만 변환합니다.구성원의 변환 순서는 키가 그룹에 있는 순서와 같습니다.
space:
선택할 수 있습니다. 텍스트는 축소, 공백, 줄 바꿈 문자를 추가합니다. 만약space가 숫자라면, 값 텍스트는 각 단계에서 지정된 숫자의 공백을 축소하고, 만약space가 10보다 크면, 텍스트는 10개의 공백을 축소합니다.space도 다음과 같은 비숫자를 사용할 수 있습니다.\t.
반환값:
JSON 텍스트가 포함된 문자열을 반환합니다.
인스턴스
var str = {"name":" ", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( " :" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //
document.write( " :" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre
하지만 IE6-7에는 JSON 대상이 없기 때문에 json2를 빌려야 한다.js가 실현합니다.오늘은 stringify 방법의 정확한 사용 자세를 간단히 소개해 드리겠습니다.
물론 고수들을 천박하게 웃겼다. 본고는 초보 친구들에게 몇 가지 방법을 공유할 뿐이다.
var data = [
{name: " ", sex:1, age: 30},
{name: " ", sex:0, age: 20},
{name: " ", sex:1, age: 30}
];
var str_json = JSON.stringify(data);
console.log(str_json);
이것은 우리의 일상적인 용법이다. 매우 간단하다. 그렇지?예를 들어 우리의 데이터는 매우 복잡하고 프로필 사진, 닉네임, 개인 서명 같은 정보도 있다.
그런데 저는 로컬에 저장하고 사용자 이름과 성별만 있으면 붓나요?
아마도 당신은 so easy라고 말할 것입니다. 데이터를 두루 훑어보고 다시 추출하면 됩니다.
예:
var data = [
{name: " ", sex:1, age: 30},
{name: " ", sex:0, age: 20},
{name: " ", sex:1, age: 30}
];
for (var i=0, new_data=[]; i<data.length; i++) {
new_data.push({
name: data[i].name,
sex: data[i].sex
});
}
var str_json = JSON.stringify(new_data);
console.log(str_json);
확실히 분당해.사실 우리는stringify 두 번째 파라미터만 사용하면 이런 문제를 간단하게 처리할 수 있다.
var data = [
{name: " ", sex:1, age: 30},
{name: " ", sex:0, age: 20},
{name: " ", sex:1, age: 30}
];
var str_json = JSON.stringify(data, ["name", "sex"]);
console.log(str_json);
두 번째 파라미터는 필요한 키 그룹을 전송하기만 하면 매우 쉽게 이 처리를 완성할 수 있다.물론 우리가 1,0을 남녀로 수정하려면 두 번째 파라미터는 리셋 함수로 처리할 수 있다.
var data = [
{name: " ", sex:1, age: 30},
{name: " ", sex:0, age: 20},
{name: " ", sex:1, age: 30}
];
var str_json = JSON.stringify(data, function (k, v) {
if (k === "sex") {
return [" ", " "][v];
}
return v;
});
console.log(str_json);
두 번째 파라미터가 이렇게 강해서 우리를 위해 적지 않은 번거로움을 덜었다.문자열을 포맷하는 데 사용되는 세 번째 매개 변수도 있습니다.
var data = [
{name: " ", sex:1, age: 30},
{name: " ", sex:0, age: 20},
{name: " ", sex:1, age: 30}
];
var str_json = JSON.stringify(data, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);
사실 나는 이것이 매우 계륵적인 기능이라고 생각하지만, 일반적인 상황에서는 아무런 소용이 없다.자, 오늘의 나눔은 이것뿐입니다. 초보 친구에게 도움이 되었으면 합니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
스마트 폰 버전 Qiita에서 새로운 기사를 만드는 버튼을 모르기 때문에 QiitaAPI를 사용하여 어떻게 하는지 테스트오랜만에 신규 기사를 쓰려고 하면, 「작성 버튼…어디?」가 되어 전혀 발견되지 않았기 때문에, QiitaAPI와 Shortcuts로 어떻게든 한 이야기. 사용할 수 있는 도구는 스마트폰만(PC는 사용하지 않는다) S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.