c#中给Json数组赋数组名
本文关键字:数组 Json 中给 | 更新日期: 2023-09-27 18:07:24
我有一个Json数组,看起来像这样:
[{"ticketAmount":5,"state":"Active"},{"ticketAmount":6,"state":"Closed"},{"ticketAmount":1,"state":"Resolve"}]
我想让它得到的是一个数组包含一个分配的变量然后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>()
但不确定如何工作
谢谢
只需按如下方式更改序列化代码....
var json = serializer.Serialize(new {items=entites} );
BTW: items:[...]
不是一个有效的json,它应该是{items:[...]}