簡體   English   中英

在 C# 中將數組序列化為 JSON

[英]Serializing array to JSON in C#

如何在 C# 中初始化和向 json 數組添加動態值? 我想將每個值添加到位於 foreach 循環內的 json 數組。

foreach (DataRow drow in mydeal.Rows)
{
    // add json array values here in the key-value format//
}

對於數組,創建一個數組並將其序列化。 對於字典,要么創建字典(鍵值)並對其進行自定義序列化(在堆棧溢出中介紹)或使用動態對象,例如:

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();
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM