【发布时间】:2014-03-18 01:02:59
【问题描述】:
在我的控制器类中,我有很多方法可以输出格式正确的 JSON 数据。它们都执行数据库查询。 例如
// GET api/User
public IEnumerable<Object> GetUsers()
{
var query = from user in db.Users
orderby user.Name
select new { Name = user.Name};
return query.AsEnumerable<Object>();
}
现在我想返回我的一个类的属性。
public IEnumerable<Object> GetProperties()
{
return typeof(MyClass)
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Select(p => p.Name).ToList();
}
然而,不是输出 JSON 实体框架给了我一些类似的 XML
<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>Property1</string>
<string>Property2</string>
</ArrayOfstring>
我尝试在控制器方法中转换输出。
public string GetProperties()
{
var results = typeof(ComplexInfo)
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Select(p => p.Name).ToList();
return JsonConvert.SerializeObject(results, Formatting.Indented,
new JsonSerializerSettings {
PreserveReferencesHandling = PreserveReferencesHandling.Objects
});
}
很遗憾,它仍在输出 XML。
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">[
"Property1",
"Property2",
]</string>
如何确保从控制器中检索 JSON 对象?
【问题讨论】:
-
你在使用 web-api 吗?
-
您能否为实际请求显示您的代码。还有你总是想返回 json 吗?
-
@Explic-请检查我的答案。
标签: asp.net-mvc json entity-framework xml-serialization xmlserializer