在C#中将数组序列化为JSON
本文关键字:序列化 JSON 数组 | 更新日期: 2023-09-27 18:20:21
如何初始化并向c#中的json数组添加动态值?我想将每个值添加到foreach循环中的json数组中。
foreach (DataRow drow in mydeal.Rows)
{
// add json array values here in the key-value format//
}
对于数组,创建一个数组并对其进行序列化。对于dictionary,要么创建一个dictionary(键值)并自定义序列化(在Stack Overflow中介绍),要么使用动态对象,例如:
https://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing
或者只查找同样覆盖在堆栈溢出上的serialize dynamic object json
。
如果您根本不知道如何序列化为JSON,请查看ASP/WebAPI教程,其中有很多教程。
为了分享我使用DataTable传输数据和反馈Json格式的方法,希望这是处理问题的好方法
public IHttpActionResult PostBanners(xx id)
{
string queryString = "select top 2 a.point,a.seq_banner from Banners as a left join RelationCountryBanner as b on a.seq_banner = b.seq_file ";
//string queryString = id.str;
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection())
{
if (ConfigurationManager.ConnectionStrings["DefaultConnection"] != null)
{
con.ConnectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
}
else
{
con.ConnectionString = "Data Source=******;Initial Catalog=B2CGlobal2010;Persist Security Info=True;User ID=*******;Password=****";
}
using (SqlCommand cmd = new SqlCommand(queryString.ToString(), con))
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
DataTable xx = (DataTable)JsonConvert.DeserializeObject(serializer.Serialize(rows), (typeof(DataTable)));
// return Ok(xx);
return Ok(serializer.Serialize(rows));
}
}
return NotFound();
}