asp.net mvc core 어떻게 Json 쿼리를 반환 할 수 있습니다.

asp.net-core-mvc asp.net-mvc c# dapper json

문제

맨 먼저이 작업을 수행하여 Json 쿼리를 반환하는 방법을 알고 있습니다.

public JsonResult streams()
{
    using (var conn = new NpgsqlConnection(Connectionstring))
    {
        conn.Open();
        var credentials =  conn.Query<Streams>("select id,name from streams").ToList();                
        ViewData["Message"] = "Your application description page.";
        conn.Close();
        return Json(credentials);
    }
}

위의 코드는 Json을 데이터베이스에서 반환하지만 현재는 SQL 코드에서 Json을 실제로 반환하고 있습니다.

var credentials =  conn.Query<Streams>("select SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();

그 새로운 쿼리가 제대로 작동하지만 컨트롤러에 null이 반환됩니다.

public JsonResult streams()
{
    using (var conn = new NpgsqlConnection(Connectionstring))
    {
        conn.Open();
        var credentials =  conn.Query<Streams>("SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();            
        ViewData["Message"] = "Your application description page.";
        conn.Close();
        return Json(credentials);
    }
}

이 문제를 어떻게 해결할 수 있습니까? 내 가정은 JsonResult를 사용하고 Json을 액션으로 반환하는 것이 SQL 쿼리가 이미 Json을 반환하기 때문에 일을 망쳐 놓는 것입니다.

이것은 내 스트림 클래스입니다.

  public class Streams
    {
        [Key]
        public int id { get; set; }
        public string name { get; set; }
        public int profile_id { get; set; }

        public DateTime created_on { get; set; }
        public int last_reply { get; set; }
        public int comments { get; set; }
        public string city { get; set; }
        public string state { get; set; }
        public float latitudes { get; set; }
        public float longitudes { get; set; }
        public int votes { get; set; }
    }

수락 된 답변

그것은 당신이 당신의 문자열에있는 Json과 이것에 대한 호출을 가지고 있기 때문입니다 this.Json(object) 은 Json에게 직렬화하도록 설계되었습니다.

MVC 5에서는 다음을 할 수 있습니다.

return this.Content(credentials, "application/json");

ContentResult 클래스는 MVC Core에 있으므로 구문이 동일하다고 가정합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.