Asp.net web api Web Api-返回字典
我无法将已填充的Asp.net web api Web Api-返回字典,asp.net-web-api,Asp.net Web Api,我无法将已填充的列表>实例从Web API控制器成功返回到C控制台应用程序。这里是细节 Web API代码: [HttpPost] public async Task<HttpResponseMessage> Get(IEnumerable<long> ids) { var results = [assume populated instance of List<StringDictionary>>]
列表>
实例从Web API控制器成功返回到C
控制台应用程序。这里是细节
Web API代码:
[HttpPost]
public async Task<HttpResponseMessage> Get(IEnumerable<long> ids)
{
var results = [assume populated instance of List<StringDictionary>>]
return Request.CreateResponse<List<StringDictionary>>(HttpStatusCode.OK, results);
}
我在这里遗漏了什么明显的事实
更新-有趣的是,如果我将StringDictionary更改为Dictionary,效果会很好。区别在于反序列化。JSON反序列化程序无法反序列化正在发送的格式。如果只是尝试发送单个对象,则会出现以下错误:
无法创建和填充列表类型System.Collections.Specialized.StringDictionary。
这可以帮助你获得更多的理解
下面是序列化字典和字符串字典的JSON表示
字典
[
{
"1": "A",
"4": "G"
},
{
"1": "A",
"3": "B"
}
]
[
[
{
"_key": "4",
"_value": "G"
},
{
"_key": "1",
"_value": "A"
}
],
[
{
"_key": "3",
"_value": "B"
},
{
"_key": "1",
"_value": "A"
}
]
]
字符串字典
[
{
"1": "A",
"4": "G"
},
{
"1": "A",
"3": "B"
}
]
[
[
{
"_key": "4",
"_value": "G"
},
{
"_key": "1",
"_value": "A"
}
],
[
{
"_key": "3",
"_value": "B"
},
{
"_key": "1",
"_value": "A"
}
]
]