C# .NETDataContract是否必须包含Json中的所有成员?
我使用.NET3.0将两个不同的json字符串反序列化为一个c#类。以下是一些json示例:C# .NETDataContract是否必须包含Json中的所有成员?,c#,.net,json,serialization,datacontract,C#,.net,Json,Serialization,Datacontract,我使用.NET3.0将两个不同的json字符串反序列化为一个c#类。以下是一些json示例: {"studio" : "mystudio", "name" : "John Doe"} {"studio_name" : "mystudio", "name" : "John Doe" } 请注意,json字符串是不同的。我可以创建一个像下面这样的类,将studio和studio_名称作为DataMembers吗 [DataContract] public class StudioM
{"studio" : "mystudio", "name" : "John Doe"}
{"studio_name" : "mystudio", "name" : "John Doe" }
请注意,json字符串是不同的。我可以创建一个像下面这样的类,将studio和studio_名称作为DataMembers吗
[DataContract]
public class StudioMeta
{
[DataMember]
public string Studio_Name { get; set; }
[DataMember]
public string Studio { get; set; }
}
如果我只从每个json字符串中包含一个数据成员,它会正确地反序列化吗?或者这是非法的
另外,如果我所做的只是反序列化,我是否需要DataContract
和DataMember
修饰符?请参见。你可以使用
[数据成员(IsRequired=true)]
字段(默认值:false)和
[数据成员(EmitDefaultValue=false)]
财产。在你的例子中,序列化和反之亦然。你可以考虑使用,然后你就不必使用这些属性了。是的,我非常喜欢,但是我不是在收费。什么是<代码>字段(默认:false)< />代码?我的意思是IsRequired默认为false。因此,如果JSON文本不包含该成员,.NET仍将正确反序列化该对象。但是您将IsRequired设置为true,这是否意味着当它不在JSON文本中时,它将中断?