【发布时间】:2015-12-15 21:28:10
【问题描述】:
如果我有一个类似这样的IDictionary<string, string> MyDictionary:
{
{"foo", "bar"},
{"abc", "xyz"}
}
在我的 MVC 控制器中,我有一个类似这样的方法:
[HttpPost]
public JsonResult DoStuff()
{
return Json(MyDictionary);
}
...它发回类似的东西:
[
{"Key":"foo", "Value":"bar"},
{"Key":"abc", "Value":"xyz"}
]
我期待(并且想要)这样的东西:
{
"foo":"bar",
"abc":"xyz"
}
我怎样才能做到这一点?
更新
因此,这与该项目是从使用自定义 JSON 序列化程序的 ASP.NET 2.0 应用程序升级而来的事实直接相关;显然,为了向后兼容,他们将其设为 MVC 应用程序中的默认 JSON 序列化程序。最终,我用 Json.NET 结果覆盖了我的控制器中的这种行为,我的问题得到了解决。
【问题讨论】:
-
你可以看看这个帖子:stackoverflow.com/questions/32253259/…
-
那是
DataContractJsonSerializer使用的字典格式。你在用这个序列化器吗?有关各种 asp.net 平台中使用的序列化程序列表,请参阅Json serializers in ASP.NET and other。您使用的是哪种确切的 asp.net 技术? -
尽我所能告诉 asp.net-mvc 在任何版本中默认不使用
DataContractJsonSerializer。你能覆盖默认行为吗?有关此示例,请参阅 ASP.NET MVC: Controlling serialization of property names with JsonResult。要改用 Json.NET,请参阅 Using JSON.NET as the default JSON serializer in ASP.NET MVC 3 - is it possible?。 -
完全有可能……这个项目有很多奇怪的设置。 :)
标签: c# json asp.net-mvc json.net