在写C#时,接触用到Json.net, 但不太会用这东东。我通过Json.net返回一个DataSet序列。部分代码如下:
using Newtonsoft.Json;string strSQL = "Select * from table Where IsUpdated = 1";
DataSet ds = MySqlHelper.ExecuteDataSet(strSQL);
string str = JsonConvert.SerializeObject(ds);
得到的结果会返回一个DataSet的序列,但我想在最后增加一个total_number的记录数在序列串里,该如何实现?望高手给个指点。
using Newtonsoft.Json;string strSQL = "Select * from table Where IsUpdated = 1";
DataSet ds = MySqlHelper.ExecuteDataSet(strSQL);
string str = JsonConvert.SerializeObject(ds);
得到的结果会返回一个DataSet的序列,但我想在最后增加一个total_number的记录数在序列串里,该如何实现?望高手给个指点。
var obj = new { datas = ds, count = 总数 };
然后序列化 obj 就可以了。
{
public override bool CanConvert(Type objectType)
{
return typeof(DataSet).IsAssignableFrom(objectType);
} public override void WriteJson(JsonWriter writer, object value)
{
DataSet ds = (DataSet)value;
writer.WriteStartObject();
foreach (DataTable dt in ds.Tables)
{
writer.WritePropertyName(dt.TableName);
writer.WriteStartArray();
foreach (DataRow dr in dt.Rows)
{
writer.WriteStartObject();
foreach (DataColumn dc in dt.Columns)
{
writer.WritePropertyName(dc.ColumnName);
writer.WriteValue(dr[dc].ToString());
}
writer.WriteEndObject();
}
writer.WriteEndArray();
}
writer.WriteEndObject();
}
}
var ds = MySqlHelper.ExecuteDataSet(strSQL);
var anonymousObj = new { datas = ds, count = ds.Tables[0].Rows.Count };
var str = JsonConvert.SerializeObject(anonymousObj );
var jqxhr = $.getJSON("TaskService/Tasks/All", function (json) {
data.rows = json;
data.total = json.length;
$('#test').datagrid('loadData', data);
});