c# - 如何在 C# MVC Controller 操作中将动态对象序列化为 JSON?

标签 c# asp.net-mvc json serialization

我想将动态对象序列化为 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/

相关文章:

c# - jquery 列表框返回用户选择的内容

c# - C#正则表达式中的"Enter"问题

asp.net - 将 MVC-3 升级到 MVC-4

c# - 带有 LEFT JOIN 条件子查询的 LINQ 查询

ruby-on-rails - 如何修改 to_json 方法并向其添加动态属性 - Rails 4

java - Java中Arraylist转Json的方法

c# - 如何通过api调用将视频上传到Microsoft Video Indexer(麦克风认知服务api)?

c# - 什么时候应该在 C# 中定义(显式或隐式)转换运算符?

asp.net-mvc - Razor - 如何从 this.Page(动态 WebPageBase.Page)转换为 System.Web.UI.Page

python - 如何从 python 中的父/子 Heirarchal json 检索数据?