12
如何在ASP.NET MVC中展平通过JsonResult返回的ExpandoObject?
我非常喜欢在运行ExpandoObject时编译服务器端动态对象的过程,但是在JSON序列化过程中很难解决这个问题。首先,我实例化该对象: dynamic expando = new ExpandoObject(); var d = expando as IDictionary<string, object>; expando.Add("SomeProp", SomeValueOrClass); 到目前为止,一切都很好。在我的MVC控制器中,我想将其作为JsonResult发送下来,所以我这样做: return new JsonResult(expando); 这会将JSON序列化为以下内容,供浏览器使用: [{"Key":"SomeProp", "Value": SomeValueOrClass}] 但是,我真正想要看到的是: {SomeProp: SomeValueOrClass} 我知道,如果我使用dynamic而不是ExpandoObject- JsonResult能够将dynamic属性和值序列化为单个对象(没有键或值业务),则可以实现此目的,但是我需要使用的原因ExpandoObject是因为我不知道所有据我所知,直到运行时对象上需要的属性,据我所知,如果dynamic不使用,就无法向a动态添加属性ExpandoObject。 我可能需要在javascript中筛选“键”,“值”业务,但是我希望在将其发送给客户端之前先弄清楚这一点。谢谢你的帮助!