将JSON日期信息解析为C#DateTime

use*_*192 9 c# wcf json

我有一个返回CLR对象的WCF服务.该对象定义如下:

[DataContract]
public class Person
{
  [DataMember]
  public string FullName
  {
    get { return fullName; }
    set { id = fullName; }
  }
  private string fullName = string.Empty;

  [DataMember]
  public DateTime BirthDate
  {
    get { return birthDate; }
    set { birthDate = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

正在创建此对象的实例并从我的WCF服务返回.此服务如下所示:

[OperationContract]
[WebGet(UriTemplate = "/GetPersonByID/{id}", ResponseFormat = WebMessageFormat.Json)]
public Person GetPersonByID(string id)
{
  Person person = FindPersonByID(id);
  return person;
}
Run Code Online (Sandbox Code Playgroud)

当我在我的应用程序中得到响应时,我可以成功提取FullName值.但是,我还没有成功地将BirthDate转换为客户端应用程序中的C#DateTime对象.转换为字符串时,BirthDate看起来像这样:

\/Date(1297367252340-0500)\/
Run Code Online (Sandbox Code Playgroud)

如何将其转换为C#DateTime实例?

谢谢!

RP *_*yer 5

这有两个选择:

您可以使用System.Web.Script.Serialization.JavaScriptSerializer中的Deserialize方法 (在System.Web.Extensions.dll中).

或者您可以使用System.Runtime.Serialization.Json.DataContractJsonSerializer中的ReadObject方法 (在System.Runtime.Serialization.dll中或在System.ServiceModel.Web.dll中的.NET 3.5中).

确保您的日期包含在以下引号中:

string dateString = @"""\/Date(1297367252340-0500)\/""";
Run Code Online (Sandbox Code Playgroud)