如何解析具有Date属性的JSON字符串

How to parse JSON String with Date attribute

本文关键字:JSON 字符串 属性 Date 何解析      更新时间:2023-09-26

我正试图找到一种解析包含Date对象的JSON字符串的方法。

> 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的最佳方法是什么?

感谢

JSON不能用于反序列化对象(Date>字符串>Date
只有字符串、数字、对象(文字)、数组、布尔值和null才能很好地序列化。

您必须编写一个自定义解析器,它处理Date对象,如下所示:

  • 解析:使用Date构造函数解析时间戳。例如CCD_ 5。

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

使用yui字符串ToDate函数字符串ToDate将iso8601 UTC格式的字符串转换为Dates:

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

parsed.date现在将包含一个date对象,其他元素也将被取消序列化。

请参阅此处的示例。