如何获取数据表到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 慢。