Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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/4/webpack/2.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# 序列化XML和JSON的不同成员_C#_.net_Json_Serialization_Datacontractserializer - Fatal编程技术网

C# 序列化XML和JSON的不同成员

C# 序列化XML和JSON的不同成员,c#,.net,json,serialization,datacontractserializer,C#,.net,Json,Serialization,Datacontractserializer,我有几个类,我用DataContract/DataMember属性和DataContractSerializer将它们序列化为XML。 现在,我想使用相同的类将来自客户端的ajax调用序列化为JSON。 但是,我想要序列化为JSON的成员与我想要序列化为XML的成员略有不同。是否有一种方法(使用属性)来区分这两者 顺便说一句,我使用的是DataContractSerializer而不是XmlSerializer,因为我需要序列化私有成员,所以切换到XmlSerializer不是一个选项。对于序列

我有几个类,我用
DataContract
/
DataMember
属性和
DataContractSerializer
将它们序列化为XML。 现在,我想使用相同的类将来自客户端的ajax调用序列化为JSON。 但是,我想要序列化为JSON的成员与我想要序列化为XML的成员略有不同。是否有一种方法(使用属性)来区分这两者


顺便说一句,我使用的是
DataContractSerializer
而不是
XmlSerializer
,因为我需要序列化私有成员,所以切换到
XmlSerializer
不是一个选项。

对于序列化json,我使用:

System.Web.Script.Serialization.JavaScriptSerializer
您还可以在您的情况下使用ignore属性来操纵输出

编辑:

刚刚注意到,在处理datacontracts时,您可能更熟悉另一个选项:

System.Runtime.Serialization.Json.DataContractJsonSerializer
参考资料:


我主要需要排除/忽略XML序列化的成员。这也可能吗?您可以忽略具有属性的类的公共属性,只需链接到DataContractSerializer即可。私人成员可能是个问题。但是这个序列化程序不会进行XML序列化。您需要使用您提到的DataContractSerializer或XmlSerializer。查看包含ScriptIgnoreAttribute示例的链接。如果您想在两个不同的上下文中公开不同的成员,那么根据定义,您有两个不同的数据协定。这是真的,所以我想问题是我可以在同一个类上定义两个不同的数据协定吗?