如何在JSON字符串中反序列化日期

时间:2011-06-10 10:46:30

标签: .net json serialization f# deserialization

我正在尝试反序列化以下JSON字符串:

{
    "id":"4711363275",
    "owner":"51262181@N07",
    "datetaken":"2010-06-10 11:34:35",
    "ownername":"tlamy",
    "latitude":48.85959,
    "longitude":2.291872
}

以下是F#代码:

[<DataContract>]
type photo = {
        [<field: DataMember(Name = "id")>]
        photo_id:int64
        [<field: DataMember(Name = "owner")>]
        owner:string
        [<field: DataMember(Name = "datetaken")>]
        datetaken:DateTime
        [<field: DataMember(Name = "latitude")>]
        latitude:float
        [<field: DataMember(Name = "longitude")>]
        longitude:float
}

let internal unjson<'t> (jsonString:string)  : 't =  
    use ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(jsonString)) 
    let obj = (new DataContractJsonSerializer(typeof<'t>)).ReadObject(ms) 
    obj :?> 't
let decodePhoto = unjson<photo>

我遇到的问题是日期字段,上面的代码会引发反序列化错误。如何指定要解析的日期字符串的格式?

非常感谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

不确定,但您可以使用IDeserializationCallback界面或OnDeserializing属性吗?