我想将动态对象序列化为 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}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)