.Net DataContract是否必须包含Json的所有成员?

时间:2013-09-11 15:39:55

标签: c# .net json serialization datacontract

我使用.Net 3.0将两个不同的json字符串反序列化为c#类。这是json的一些示例:

{"studio" : "mystudio", "name" : "John Doe"}
{"studio_name" : "mystudio", "name" : "John Doe" }

请注意,json字符串是不同的。我可以创建一个类如下的类,其中studio和studio_name为DataMembers?:

    [DataContract]
    public class StudioMeta
    {
        [DataMember]
        public string Studio_Name { get; set; }
        [DataMember]
        public string Studio { get; set; }
    }

如果我只是从每个json字符串中包含一个数据成员,它是否会正确反序列化?或者这是非法的?

另外,如果我正在进行反序列化,是否需要DataContractDataMember修饰符?

1 个答案:

答案 0 :(得分:0)

MSDN documentation

可以使用

  

[DataMember(IsRequired = true)]

字段(默认值:false)和

  

[DataMember(EmitDefaultValue = false)]

属性。在您的情况下,序列化反之亦然。