使用DataContractJsonSerializer序列化对象

时间:2012-07-08 16:40:33

标签: json c#-4.0 datacontractjsonserializer

我创建了一个使用DataContractJsonSerializer序列化JSON的通用扩展方法。 看起来像这样:

public static string ToJSON<T>(this T obj) where T : class
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
    using (MemoryStream stream = new MemoryStream())
    {
       serializer.WriteObject(stream, obj);
       return Encoding.Default.GetString(stream.ToArray());
    }
}

我需要创建一个类,当序列化为json时,它应该是这样的:

{
     "expiration": "2011-04-20T11:54:21.032Z",
     "conditions": [
        ["eq", "acl", "private"],
        ["eq", "bucket": "myas3bucket"],
        ["eq", "$key", "myfilename.jpg"],
        ["content-length-range", 0, 20971520],
        ["eq", "$redirect", "myredirecturl"],
     ]
}

这门课的属性是什么?

谢谢,

1 个答案:

答案 0 :(得分:4)

这应该做的工作:

DateTime expiration { get; set; }
string[][] conditions { get; set; }

你也可以使conditions成为List<List<string>>,或IEnumerable<IEnumerable<string>>,甚至List<string[]>应该有效。