Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NETDataContract是否必须包含Json中的所有成员?_C#_.net_Json_Serialization_Datacontract - Fatal编程技术网

C# .NETDataContract是否必须包含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

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

{"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文本中时,它将中断?