2
컨트롤러 클래스에는 올바른 형식의 JSON 데이터를 출력하는 많은 메서드가 있습니다. 모두 데이터베이스 쿼리를 수행합니다. 예.Entity Framework에서 JSON 대신 XML을 출력합니다.
// 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 엔티티 프레임 워크를하고 출력하기의 내게 컨트롤러 방식으로 출력을 변환하기 위해 노력했습니다
<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>
같은 일부 XML을 제공합니다.
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 개체를 검색하려면 어떻게해야합니까?
웹 API를 사용하고 있습니까? –
@ J29 예 web-api. – Explicat
실제 요청에 대한 코드를 표시 할 수 있습니까? 또한 항상 json을 반환하고 싶습니까? – ASG