2016-09-18 6 views
0

JSON 배열에 배열 이름을 할당 (기본적으로 배열의 이름을 지정)과 같이 :내가이처럼 보이는 JSON 배열을하는

"items":[{"ticketAmount":5,"state":"Active"},{"ticketAmount":6,"state":"Closed"},{"ticketAmount":1,"state":"Resolve"}] 

내 코드 :

public class EntityUserClosed 
{ 
     public int ticketAmount { get; set; } 
     public string loggedDate { get; set; } 
} 

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public void GetUserClosedTickets() 
{ 
    var entites = new List<EntityUserClosed>(); 

    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand("Select LoggedBy, count(ID) as ticketAmount from Tickets WHERE LoggedDate >=dateadd(day,datediff(day,0,GetDate())- 30,0) AND State = '3' group by LoggedBy")) 
     { 
      var ticketAmount = 0; 
      var loggedBy = string.Empty; 

      cmd.Connection = con; 

      con.Open(); 
      var reader = cmd.ExecuteReader(); 

      if (reader.HasRows) 
      { 
       while (reader.Read()) 
       { 
        ticketAmount = (int)reader["ticketAmount"]; 
        //Convert to JSON format 
        loggedBy = reader["LoggedBy"].ToString(); 

        var entity = new EntityUserClosed 
          { 
           ticketAmount = ticketAmount, 
           loggedDate = loggedBy, 
          }; 
        entites.Add(entity); 
       } 
      } 

      var json = serializer.Serialize(entites); 
      this.Context.Response.ContentType = "application/json; charset=utf-8"; 
      var test = json.Replace("\\", ""); 
      this.Context.Response.Write(test); 
     } 
    } 
} 

나는 몇 가지 솔루션을 시도 등 다음과 같이 입력하십시오 :

var entity = new List<EntityUserClosed>() 

그러나 그 방법은 확실하지 않습니다.

감사

다음과 같이

답변

1

단순히 BTW

var json = serializer.Serialize(new {items=entites}); 

.... 당신의 직렬화 코드를 변경 : items:[...]가 유효한 JSON 아닌, 그것은해야 {items:[...]}

관련 문제