2015-11-02 61 views
-3

如何初始化并向c#中的json数组添加动态值?我想将每个值添加到位于foreach循环内的json数组中。在C#中将数组序列化为JSON

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

你应该只处理你将一个正常的列表/词典然后将数据序列化为JSON。虽然,这个问题并没有给予太多的工作,所以不能多说。 – Dhunt

回答

0

对于数组,请创建一个数组并对其进行序列化。对于字典或者创建一个字典(键值)和自定义序列化(覆盖堆栈溢出),或使用动态对象,例如:

https://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing

或只是看serialize dynamic object json,也涵盖对堆栈溢出。

如果您不知道如何序列化为JSON,请检查ASP/WebAPI教程,其中充满了这些教程。

0

分享我的方式,可以使用数据表来传输数据和反馈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(); 
     }