var list = new List { 27, "foo bar", 12.34m, true, DateTime.Now }; var serializer = new DataContractJsonSerializer(typeof (List)); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, list); ms.Position = 0; var deserializedList = serializer.ReadObject(ms) as List; }
var serializer = new DataContractJsonSerializer(typeof(List
然后添加这个类:
public class DateTimeDataContractSurrogate : IDataContractSurrogate { private static readonly Regex dateRegex = new Regex(@"/Date((d+)([-+])(d+))/"); private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public object GetCustomDataToExport(Type clrType, Type dataContractType) { // not used return null; } public object GetCustomDataToExport(System.Reflection.MemberInfo memberInfo, Type dataContractType) { // not used return null; } public Type GetDataContractType(Type type) { // not used return type; } public object GetDeserializedObject(object obj, Type targetType) { // for debugging //Console.WriteLine("GetDeserializedObject: obj = {0} ({1}), targetType = {2}", obj, obj.GetType(), targetType); // only act on List
var ser = new DataContractJsonSerializer(typeof(CreateOmsEntryCommand), new DataContractJsonSerializerSettings { DateTimeFormat = new DateTimeFormat("yyyy-MM-dd'T'HH:mm:ssZ") });
var list = new List { 27, "foo bar", 12.34m, true, DateTime.Now }; string json = JsonConvert.SerializeObject(list); var orgObj=JsonConvert.DeserializeObject>(json);
string dateAsString = Convert.ToString(DateTime.Now); var list = new object[] { 27, "foo bar", 12.34m, true, dateAsString }; var serializer = new DataContractJsonSerializer(typeof (List)); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, list); ms.Position = 0; var deserializedList = serializer.ReadObject(ms) as List; DateTime dateTime = Convert.ToDateTime(deserializedList[4]); }