2012-02-17 6 views
0

asmxサービスmenthodsのデータテーブルからjson配列の戻り値を取得する方法。 \ "[[\" 2012年2月3日午前11時30分14秒AM:どのようにデータテーブルを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" であります"、\" 10 \ "]、[\" 2/3/2012 11:30:16 AM \ "、\" 5 \ "]、[\" 2/3/2012 11:30:18 AM \ \ "7 \"]] "}

答えて

0

あなたが試すことがあり、.NET Frameworkの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より遅くなることが報告されています。

関連する問題