Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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
WCF DataContract:将JSON对象映射到C#字典_C#_Python_Json_Wcf_Dictionary - Fatal编程技术网

WCF DataContract:将JSON对象映射到C#字典

WCF DataContract:将JSON对象映射到C#字典,c#,python,json,wcf,dictionary,C#,Python,Json,Wcf,Dictionary,我想将通过HTTP从python应用程序收到的JSON字典反序列化为C#中的字典 JSON对象如下所示: { “本族语”:{ “foo”:0, “酒吧”:1 }, “obj_dict”:[ {“Key”:“foo”,“Value”:0}, {“键”:“条”,“值”:1}, ] } 它包含两次传递字典的尝试。第一种是原生JSON格式,第二种似乎是C#所需的格式 两者都将转换为此XML格式: 1. 0 0 福 1. 酒吧 在我的应用程序中,我尝试了以下数据契约: [DataContract]

我想将通过HTTP从python应用程序收到的JSON字典反序列化为C#中的
字典

JSON对象如下所示:

{
“本族语”:{
“foo”:0,
“酒吧”:1
},
“obj_dict”:[
{“Key”:“foo”,“Value”:0},
{“键”:“条”,“值”:1},
]
}
它包含两次传递字典的尝试。第一种是原生JSON格式,第二种似乎是C#所需的格式

两者都将转换为此XML格式:


1.
0
0
福
1.
酒吧
在我的应用程序中,我尝试了以下数据契约:

[DataContract]
公共类MyDto
{
[数据成员(Name=“native_dict”)]
专用字典MyDict1{get;set;}
[数据成员(Name=“obj_dict”)]
私有MyDictionary MyDict1{get;set;}
}
[CollectionDataContract
(Name=“obj_dict”,
ItemName=“item”
KeyName=“Key”,
ValueName=“Value”)]
公共类MyDictionary:字典{}
这些问题都无法解决


有没有一种方法可以定义一个
DataContract
,序列化程序可以使用它将JSON对象转换为一个
Dictionary
,而无需重写序列化程序?

对于您的情况,我通常使用List而不是Dictionary。您可以使用类型列表创建属性,其中objectItem是一个类,其键和值作为自己的属性。WCF datacontract将把传入的json字符串反序列化为c#list对象。

不幸的是,我不想使用list。字典将使我的界面更易于用户使用。