我想将动态对象序列化为 JSON。我尝试使用 ExpandoObject,但结果不是我需要的:
public JsonResult Edit()
{
dynamic o = new ExpandoObject();
((IDictionary<string,Object>)o)["abc"] = "ABC"; //or o.abc = "ABC";
return Json(o);
}
我希望 JSON 看起来像:{"abc": "ABC"} 但它看起来像 [{"Key":"abc","Value":"ABC"}] 显然 ExpandoObject 不行,但是我可以继承 DynamicObject 并以某种方式覆盖它的方法来实现我想要的 JSON 格式吗?
最佳答案
我遇到了同样的问题并最终通过使用 JSON.net (Newtonsoft.Json) 序列化程序而不是使用 JsonContent 结果来修复它。然后它用普通属性序列化了我的动态对象,而不是“键”“值”奇怪的列表。
//In my usage I had a list of dynamic objects
var output = new List<dynamic>();
//Change this
return JsonContent(new {Error = errorMessage, Results = output});
//to this
return Content(JsonConvert.SerializeObject(new {Error = errorMessage, Results = output}));
关于c# - 如何在 C# MVC Controller 操作中将动态对象序列化为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041902/