将每行的数据表转换为 json 时,我没有得到正确的格式并且还收到错误 "RowError":"","RowState":2
这是我的代码:
StrQry="select * from doctor_mas where version_code=1";
DataTable dt=new DataTable();
dt=Sqlhelper.OleDbTable(StrQry);
try
{
for(int i=0;i<dt.Rows.Count;i++)
{
string JSONresult;
JSONresult = JsonConvert.SerializeObject(dt.Rows[i]);
var Update = new Salestrak.Update.updDoc();
String Authrized = Update.updateTable((int)dt.Rows[i][0], "doctor_mas", JSONresult);
}
}
catch
{
MessageBox.Show("Sync Aborted");
}
生成的 Json 字符串为:
{"RowError":"","RowState":2,"Table":[{"id":248.0,"birth_date":"1950-01-01T00:00:00","doctor_code":"D248","doctor_name":"Ajay A Haryani","version_code":1},{"id":293.0,"birth_date":"1990-05-26T00:00:00","doctor_code":"D293","doctor_name":"Aarti Thakker","version_code":1}],"ItemArray":[248.0,"1950-01-01T00:00:00","D248","Ajay A Haryani",0,1.0,2.0,"Sandip Palekar","Mumbai-2",2.0,"Vasudhan,1],"HasErrors":false}
最佳答案
试试这个:
string JSONresult = JsonConvert.SerializeObject(dt.Rows[i].ItemArray);
基本上您想要序列化 DataRow
的内容数组。
有一些开销的替代方案 -
var o = JsonConvert.SerializeObject(dt.Rows[0]);
for (var i = 0; i < JObject.Parse(o)["Table"].Count(); i++)
{
var t = JObject.Parse(o)["Table"][i];
}
关于c# - 将数据表转换为json时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32068403/