C# WCF正在将字典序列化为JSON数组而不是列表
作为我的情况的一个基本示例,假设我有一个具有两个属性的类UserInfo。一个是用户名字符串,另一个是字典。类用DataContract标记,道具用DataMember标记。我的WCF服务中有一个OperationContract,它以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": "
{"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进行序列化,而不是使用内置的。这导致需要返回一个流。绕着去那里的路转,但它行得通。多谢各位!