如何获取数据表到json数组在c#

问题描述:

我怎么能得到一个json数组返回从asmx服务menthods中的数据表。如何获取数据表到json数组在c#

我编码类似这样的,但阵列我没有得到

[WebMethod(CacheDuration = 500)] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json, XmlSerializeString = false)] 
public String latency(int testId) 
     { 

      SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString); 
      SqlDataAdapter da = new SqlDataAdapter("GetValues", conn); 
      da.SelectCommand.CommandType = CommandType.StoredProcedure; 
      da.SelectCommand.Parameters.Add(new SqlParameter("TestId", testId)); 
      DataTable dt=new DataTable(); 
      da.Fill(dt); 
      string[][] JaggedArray = new string[dt.Rows.Count][]; 
      int i = 0; 
      foreach (DataRow rs in dt.Rows) 
      { 
       JaggedArray[i] = new string[] { rs["Time"].ToString(), rs["minlatency"].ToString() }; 
       i = i + 1; 
      } 
      string json = JsonConvert.SerializeObject(JaggedArray); 

      return json; 

     } 

我的反应是

{ “d”: “[\” 2012年2月3日上午11时30分14秒\ “,\”10 \“],[\”2/3/2012 11:30:16 AM \“,\”5 \“],[\”2/3/2012 11:30:18 AM \“, \ “7 \”]“}

你可以试试.NET框架的JavaScriptSerializer

 JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     var serialized = serializer.Serialize(
      new int[][] 
       { 
        new []{1,2,3}, 
        new []{4,5,6} 
       } 
      ); 
     Console.WriteLine(serialized); 
     Console.ReadLine(); 

输出:

[[1,2,3],[4,5,6]] 

注:

JavaScriptSerializer有报道比Json.NET