datatable转json时发现得到的json没有tablename属性,怎么让他不丢tablename呢?
DataTable table = new DataTable(); table.TableName = "TestTable"; table.Columns.Add("id", typeof(int)); table.Columns.Add("name", typeof(string)); var dr = table.NewRow(); dr["id"] = 1; dr["name"] = "foo"; table.Rows.Add(dr); var json = JsonConvert.SerializeObject(table); var o = JsonConvert.DeserializeObject<DataTable>(json);
得到的json里没有tablename属性,反序列化也能拿到table,但是没有tablename了。
如何解决呢?
没有tablename,并不妨碍json数据的使用。
或者newtonsoft.josn本身就是这样的设置
看他的源码里反序列化时候有tablename的处理。但看不懂是怎么写入的。
if (reader.TokenType == JsonToken.PropertyName) { dt = new DataTable((string)reader.Value); reader.Read(); } else { dt = new DataTable(); }
@调调儿: 看看这个是不是对你有帮助:
@chenping2008: 应该可以参考这个做一个DataTableConverter .谢谢
换个 JSON 序列化类。
官网有给示例的。
https://www.newtonsoft.com/json/help/html/SerializeDataSet.htm
https://www.newtonsoft.com/json/help/html/DeserializeDataSet.htm