В моих классах контроллеров у меня есть много методов, которые выводят правильно отформатированные данные JSON. Все они выполняют запрос базы данных. .Entity Framework выводит XML вместо 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();
}
Однако вместо outputing JSON Entity Framework дает мне 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? –
@ J29 да web-api. – Explicat
Можете ли вы показать свой код для фактического запроса. Также вы всегда хотите вернуть json? – ASG