제2 0 장 JSON

3548 단어
문법
JSON 의 문법 은 세 가지 유형의 값 을 나 타 낼 수 있다.단순 값: 자바 스 크 립 트 와 마찬가지 로 문자열, 수치, 불 값, null 을 표시 할 수 있 으 나 특수 값 undefined 는 지원 되 지 않 습 니 다.대상: 키 쌍 이 필요 없습니다.배열: 질서 있 는 값 의 목록 입 니 다.JSON 은 변수, 함수 또는 대상 인 스 턴 스 를 지원 하지 않 고 구조 화 된 데 이 터 를 나타 내 는 형식 일 뿐 입 니 다.
20.1.1 단순 값
JSON 은 문자열 을 표시 할 때 두 개의 따옴표 를 사용 해 야 하 며, 작은 따옴표 는 문법 적 오 류 를 초래 할 수 있 습 니 다.다른 간단 한 값 은 자 바스 크 립 트 와 같다 는 것 을 나타 낸다.
20.1.2 대상 과 배열
JSON 에서 대상 의 속성 이름 에 따 옴 표를 붙 여야 합 니 다.JSON 대상 은 성명 변수 가 없고 끝자리 번호 가 없 으 며 같은 대상 에 두 개의 동명 속성 이 나타 날 수 없습니다.JSON 배열 의 문법 은 자 바스 크 립 트 와 같 지만 변수 와 분점 도 없다.
20.2 해석 과 서열 화
20.2.1 서열 화
JSON 대상 의 stringify () 방법 은 JavaScript 대상 을 JSON 문자열 로 정렬 하 는 데 사 용 됩 니 다.기본적으로 출력 된 JSON 문자열 은 공백 문자 나 들 여 쓰기 가 포함 되 어 있 지 않 습 니 다.모든 함수 와 원형 은 의도 적 으로 무시 되 고 undefined 의 모든 속성 도 건 너 뜁 니 다.
var obj = {
    x:"a",
    y:"b",
    z:{
        z1:[1,2,3],
        z2:"z2"
    },
    u:undefined,
    f:function () {
        return this.x;
    }
};
console.log(JSON.stringify(obj));  // {"x":"a","y":"b","z":{"z1":[1,2,3],"z2":"z2"}}

JSON. stringify () 방법 두 번 째 인 자 는 하나의 배열 이나 방법 일 수 있 습 니 다. 배열 일 때 직렬 화 된 결 과 는 배열 에 열 거 된 속성 만 포함 합 니 다.
console.log(JSON.stringify(obj,["x","y"]));  // {"x":"a","y":"b"}

두 번 째 매개 변 수 는 방법 일 때 두 개의 매개 변 수 를 받 습 니 다. 하 나 는 속성 명 이 고 하 나 는 속성 값 입 니 다. 방법 에서 속성 을 조작 할 수 있 으 며 함수 의 반환 값 에 따라 직렬 화 된 결 과 를 바 꿀 수 있 습 니 다.반환 값 이 undefined 인 항목 은 무 시 됩 니 다.
console.log(JSON.stringify(obj,function (key, value) {
    console.log(value);
    return value;
}));

JSON. stringify () 방법의 세 번 째 매개 변 수 는 들 여 쓰기 와 공백 문 자 를 제어 하 는 데 사 용 됩 니 다. 이 매개 변수 가 하나의 수치 라면 각 단계 의 들 여 쓰기 빈 칸 수 를 표시 합 니 다.들 여 쓰기 값 은 최대 10 입 니 다.
console.log(JSON.stringify(obj,null,4));
/*
{
    "x": "a",
    "y": "b",
    "z": {
        "z1": [
            1,
            2,
            3
        ],
        "z2": "z2"
    }
}
*/

들 여 쓰기 인자 가 문자열 일 때 이 문자열 을 들 여 쓰기 문자 로 사용 합 니 다.
console.log(JSON.stringify(obj,null,"----"));
/*
{
----"x": "a",
----"y": "b",
----"z": {
--------"z1": [
------------1,
------------2,
------------3
--------],
--------"z2": "z2"
----}
}
*/

대상 에 toJSON () 방법 이 있 을 때 직렬 화 할 때 toJSON () 방법 을 실행 하여 직렬 화 결 과 를 되 돌려 줍 니 다.
var obj = {
    x:"a",
    y:"b",
    z:{
        z1:[1,2,3],
        z2:"z2"
    },
    u:undefined,
    f:function () {
        return this.x;
    },
    toJSON:function () {
        return 0;
    }
};
console.log(JSON.stringify(obj));  // 0

20.2.2 해석
JSON. parse () 방법 은 JSON 문자열 을 JavaScript 대상 으로 해석 하 는 데 사 용 됩 니 다.조작 해석 에 사용 할 방법 을 매개 변수 로 받 습 니 다.직렬 화 방법의 두 번 째 매개 변수 와 마찬가지 로 이 분석 방법 은 두 개의 매개 변 수 를 받 습 니 다. 하 나 는 속성 명 이 고 하 나 는 속성 값 입 니 다. 방법 내 에서 모든 항목 을 조작 하여 반환 값 에 따라 분석 결 과 를 바 꿀 수 있 습 니 다.
var obj = {
    x:"a",
    y:"b",
    z:{
        z1:[1,2,3],
        z2:"z2"
    },
    u:undefined,
    f:function () {
        return this.x;
    }
};
var jsonObj = JSON.stringify(obj);
console.log(JSON.parse(jsonObj,function (key, value) {
    if(key==="x"){
        value +=1;
    }
    return value;
}));  // {x: "a1", y: "b", z: {…}}

좋은 웹페이지 즐겨찾기