我有一个对象,其属性类型为“object”(需要这个有一个通用代码)。
}, {
"Desc": "Date ouverture",
"Id": "DatOuverture",
"Mode": 0,
"Valeur": "\/Date(1482966000000+0100)\/"
}, {
我用DataContractJsonSerializer序列化它,我有这个:
Valeur = "\/Date(1482966000000+0100)\/"
因此,当我反序列化它时,序列化程序在字符串中输入“Valeur”,而不是在dateTime中。
display: block
margin: 0 auto
我试过“AlwaysTransmitTypeInformation”,但是没有改变。 当我在序列化之前写入属性时,她处于“DateTime”类型,而不是字符串。
有关信息,Valeur可以是dateTime的其他类型。
有人有想法吗?
方面。
答案 0 :(得分:0)
您可以在constructing your serializer object
:
DataContractJsonSerializerSettings
指定日期格式
public class Item
{
public object Value { get; set; }
}
class Program
{
static void Main()
{
var settings = new DataContractJsonSerializerSettings
{
DateTimeFormat = new DateTimeFormat("o"),
};
var serializer = new DataContractJsonSerializer(typeof(Item), settings);
var item = new Item { Value = DateTime.UtcNow };
serializer.WriteObject(Console.OpenStandardOutput(), item);
}
}
将序列化为:
{"Value":"2017-01-16T08:50:47.9127678Z"}
作为替代方案,您可以使用Json.NET
,这可以让您更好地控制序列化过程。