Return JSON ASP.NET MVC 5 C# 中数组格式的响应
Return JSON response in array format in ASP.NET MVC 5 C#
我想使用 asp.net mvc5 c# 从我的数据库中 return JSON 格式化。我尝试了很多方法,但无法按照我的要求生成数据。我需要这种格式的 JSON 数组。
{
"draw":0,
"recordsTotal":2,
"recordsFiltered":2,
"data":[
[
"126",
"Test Name 1",
"07.01.2022 11:55 AM",
"Male"
],
[
"127",
"Test Name 2",
"01.02.2022 11:55 AM",
"Male"
]
]
}
我得到的不是这个,而是给定格式的输出
{
"draw":0,
"recordsTotal":2,
"recordsFiltered":2,
"data":[
{
"ID":126,
"Name":"Test Name 1",
"Date":"07.01.2022 11:55 AM",
"Gender":"Male"
},
{
"ID":127,
"Name":"Test Name 2",
"Date":"01.02.2022 11:55 AM",
"Gender":"Male"
}
]
}
我的 ASP.NET MVC5 C# 代码如下
public ContentResult GetDoctor()
{
var doctors = db.Doctors.Where(e => e.ID > 0);
var doct = doctors.Select(c => new
{
ID = c.ID + "," +
"," + c.Name +
"," + c.Date +
"," + c.Gender
}).ToList();
string students = string.Join("],[", doct.Select(e => e.ID.ToString()));
students = JsonConvert.SerializeObject(students);
JsonSerializerSettings hg = new JsonSerializerSettings();
hg.Formatting = Formatting.Indented;
hg.TypeNameHandling = TypeNameHandling.None;
string json = JsonConvert.SerializeObject(doctors.ToList(),hg);
return Content(json.ToString(), "application/json");
}
您可以使用以下方法:
return Json(new
{
draw = draw,
recordsFiltered = recordsTotal,
recordsTotal = recordsTotal,
data = doctors
});
从 UI 中获取 绘制 个值。像这样:
var draw = Request.Form.GetValues("draw").FirstOrDefault();
医生 是您的名单。
记录号的值也是根据列表中的数据条数得到的
有了这个答案,您可以将数据发送到 UI 并将其加载到 数据表。
我在我的项目中使用这个标准并且它有效。
如果你需要严格使用第一个结构到return数据,那么输出结构必须是:
public class Required_Result
{
[JsonProperty("draw")]
public int Draw { get; set; }
[JsonProperty("recordsTotal")]
public int RecordsTotal { get; set; }
[JsonProperty("recordsFiltered")]
public int RecordsFiltered { get; set; }
[JsonProperty("data")]
public List<List<string>> Data { get; set; }
}
那么我假设你从数据库中恢复的数据是第二种格式:
public class Doctors_data
{
[JsonProperty("ID")]
public int ID { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
[JsonProperty("Date")]
public string Date { get; set; }
[JsonProperty("Gender")]
public string Gender { get; set; }
}
public class Resume
{
[JsonProperty("draw")]
public int Draw { get; set; }
[JsonProperty("recordsTotal")]
public int RecordsTotal { get; set; }
[JsonProperty("recordsFiltered")]
public int RecordsFiltered { get; set; }
[JsonProperty("data")]
public List<Doctors_data> Data { get; set; }
}
所以你需要将你的数据转化为需要的结果格式数据并反序列化
Resume db = new Resume(); //<--- Populate your data
Required_Result result = new Required_Result()
{
Draw = db.Draw,
RecordsTotal = db.RecordsTotal,
RecordsFiltered = db.RecordsFiltered,
Data = db.Data.Where(e => e.ID > 0).Select(item => new List<string> { item.ID.ToString(), item.Name, item.Date, item.Gender }).ToList()
};
string result_string = JsonSerializer.Serialize(result);
我想使用 asp.net mvc5 c# 从我的数据库中 return JSON 格式化。我尝试了很多方法,但无法按照我的要求生成数据。我需要这种格式的 JSON 数组。
{
"draw":0,
"recordsTotal":2,
"recordsFiltered":2,
"data":[
[
"126",
"Test Name 1",
"07.01.2022 11:55 AM",
"Male"
],
[
"127",
"Test Name 2",
"01.02.2022 11:55 AM",
"Male"
]
]
}
我得到的不是这个,而是给定格式的输出
{
"draw":0,
"recordsTotal":2,
"recordsFiltered":2,
"data":[
{
"ID":126,
"Name":"Test Name 1",
"Date":"07.01.2022 11:55 AM",
"Gender":"Male"
},
{
"ID":127,
"Name":"Test Name 2",
"Date":"01.02.2022 11:55 AM",
"Gender":"Male"
}
]
}
我的 ASP.NET MVC5 C# 代码如下
public ContentResult GetDoctor()
{
var doctors = db.Doctors.Where(e => e.ID > 0);
var doct = doctors.Select(c => new
{
ID = c.ID + "," +
"," + c.Name +
"," + c.Date +
"," + c.Gender
}).ToList();
string students = string.Join("],[", doct.Select(e => e.ID.ToString()));
students = JsonConvert.SerializeObject(students);
JsonSerializerSettings hg = new JsonSerializerSettings();
hg.Formatting = Formatting.Indented;
hg.TypeNameHandling = TypeNameHandling.None;
string json = JsonConvert.SerializeObject(doctors.ToList(),hg);
return Content(json.ToString(), "application/json");
}
您可以使用以下方法:
return Json(new
{
draw = draw,
recordsFiltered = recordsTotal,
recordsTotal = recordsTotal,
data = doctors
});
从 UI 中获取 绘制 个值。像这样:
var draw = Request.Form.GetValues("draw").FirstOrDefault();
医生 是您的名单。
记录号的值也是根据列表中的数据条数得到的
有了这个答案,您可以将数据发送到 UI 并将其加载到 数据表。
我在我的项目中使用这个标准并且它有效。
如果你需要严格使用第一个结构到return数据,那么输出结构必须是:
public class Required_Result
{
[JsonProperty("draw")]
public int Draw { get; set; }
[JsonProperty("recordsTotal")]
public int RecordsTotal { get; set; }
[JsonProperty("recordsFiltered")]
public int RecordsFiltered { get; set; }
[JsonProperty("data")]
public List<List<string>> Data { get; set; }
}
那么我假设你从数据库中恢复的数据是第二种格式:
public class Doctors_data
{
[JsonProperty("ID")]
public int ID { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
[JsonProperty("Date")]
public string Date { get; set; }
[JsonProperty("Gender")]
public string Gender { get; set; }
}
public class Resume
{
[JsonProperty("draw")]
public int Draw { get; set; }
[JsonProperty("recordsTotal")]
public int RecordsTotal { get; set; }
[JsonProperty("recordsFiltered")]
public int RecordsFiltered { get; set; }
[JsonProperty("data")]
public List<Doctors_data> Data { get; set; }
}
所以你需要将你的数据转化为需要的结果格式数据并反序列化
Resume db = new Resume(); //<--- Populate your data
Required_Result result = new Required_Result()
{
Draw = db.Draw,
RecordsTotal = db.RecordsTotal,
RecordsFiltered = db.RecordsFiltered,
Data = db.Data.Where(e => e.ID > 0).Select(item => new List<string> { item.ID.ToString(), item.Name, item.Date, item.Gender }).ToList()
};
string result_string = JsonSerializer.Serialize(result);