2012-03-19 4 views
0

Date 객체를 포함하는 JSON 문자열을 구문 분석하는 방법을 찾으려고합니다.Date 속성을 사용하여 JSON String을 구문 분석하는 방법

> var obj = {} 
> obj.date = new Date(); 
Mon Mar 19 2012 15:14:22 GMT-0700 (PDT) 
> obj.number = 1 
1 
> obj.float = 1.1 
1.1 
> obj.str = "hello" 
"hello" 
> obj 
Object 
date: Mon Mar 19 2012 15:14:22 GMT-0700 (PDT) 
float: 1.1 
number: 1 
str: "hello" 

> YAHOO.lang.JSON.stringify(obj) 
"{"date":"\"2012-03-19T22:14:22Z\"","number":1,"float":1.1,"str":"hello"}" 

> parsed = YAHOO.lang.JSON.parse(str) 
Object 
date: ""2012-03-19T22:14:22Z"" 
float: 1.1 
number: 1 
str: "hello" 

parsed.date가 obj.date가 이전에 Date 개체였던 문자열임을 확인하십시오. 중첩 된 객체로 JSON을 파싱하는 가장 좋은 방법은 무엇입니까?

답변

2

JSON이 해제 직렬화 객체 (Date> 문자열 >Date)에 사용할 수 없습니다 감사합니다.
문자열, 숫자, 개체 (리터럴), 배열, 부울 및 null 만 잘 직렬화 할 수 있습니다.

  • 구문 분석 : 다음 Date 생성자를 사용하여 타임 스탬프를 구문 분석

    당신은 다음과 같이 Date 객체를 다루는 사용자 정의 파서를 작성해야합니다. 예 : new Date(timestamp);.

    function parse(str) { 
        var obj = YAHOO.lang.JSON.parse(str); 
        obj.date = new Date(obj); 
    } 
    
0

사용 유이 stringToDate 기능 stringToDate는 날짜에 ISO8601 UTC 형식의 문자열을집니다 :

var parsed = YAHOO.lang.Json.stringToDate(str); 

parsed.date 이제 Date 객체를 포함하고 다른 요소도 de_serialized됩니다.

예 : here 참조.

관련 문제