2012-02-17 36 views
0

我怎麼能得到一個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 \」]「}

回答

0

你可以試試.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