Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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# WCF正在将字典序列化为JSON数组而不是列表_C#_Json_Wcf - Fatal编程技术网

C# WCF正在将字典序列化为JSON数组而不是列表

C# WCF正在将字典序列化为JSON数组而不是列表,c#,json,wcf,C#,Json,Wcf,作为我的情况的一个基本示例,假设我有一个具有两个属性的类UserInfo。一个是用户名字符串,另一个是字典。类用DataContract标记,道具用DataMember标记。我的WCF服务中有一个OperationContract,它以JSON的形式返回我的对象。当请求命中并返回“我的对象”时,它将被序列化为: {"UserName":"Bobby", "Demographics" : [{"Key": "1", "Value": "Blah1"},{"Key": "2", "Value": "

作为我的情况的一个基本示例,假设我有一个具有两个属性的类UserInfo。一个是用户名字符串,另一个是字典。类用DataContract标记,道具用DataMember标记。我的WCF服务中有一个OperationContract,它以JSON的形式返回我的对象。当请求命中并返回“我的对象”时,它将被序列化为:

{"UserName":"Bobby", "Demographics" : [{"Key": "1", "Value": "Blah1"},{"Key": "2", "Value": "Blah2"}]}
人口统计数据将作为数组返回。我想把它作为列表返回。意味着应该移除支架,如下所示:

编辑我写错了那个对象

{用户名:Bobby, 人口统计:{ 关键1:{ 值:Blah1 }, 关键2:{ 值:Blah2 } } }

我的经营合同是: [经营合同] [WebInvokeUriTemplate=GetNewUserFields, ResponseFormat=WebMessageFormat.Json, 方法=获取, description设置新用户所需的字段] UserInfo GetNewUserFields

有没有办法做到这一点?我将发布直接代码示例,然而,我正在序列化的类实际上比我所描述的要复杂得多,这里发布的返回结果将是一堆需要筛选的数据


感谢您提供的任何帮助。

您要返回的JSON不是有效的JSON结构。你不能只把一个对象嵌套在一个没有键的对象中。你是对的。我是个笨蛋。我对上面的内容进行了编辑以使其正确。在这种情况下,请看一下,这样看来我将不得不使用JsonConvert进行序列化,而不是使用内置的。这导致需要返回一个流。绕着去那里的路转,但它行得通。多谢各位!