序列化数据表的正确方法
本文关键字:方法 数据表 序列化 | 更新日期: 2023-09-27 18:28:50
以下代码在最后一行Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1.
上给出错误
DataTable dt = GetTable();
string json = JsonConvert.SerializeObject(dt, Formatting.None);
var @object = JObject.Parse(json);
串行化数据表以使行var @object = JObject.Parse(json);
正常工作的正确方法是什么?
这是您从第二行获得的json:
[
{
"Dosage": 25,
"Drug": "Indocin",
"Patient": "David",
"Date": "2014-10-31T16:25:33.181239"
},
{
"Dosage": 50,
"Drug": "Enebrel",
"Patient": "Sam",
"Date": "2014-10-31T16:25:33.181239"
},
.....
请注意第一个字符[
。这意味着它是一个数组,而不是一个对象。这是一个重要的关键词。
所以,使用这个:
DataTable dt = GetTable();
string json = JsonConvert.SerializeObject(dt, Formatting.None);
var @object = JArray.Parse(json); // <-- Using JArray, not JObject
如果您想将json字符串转换回数据表,可以使用以下行:
var dataTable2 = JsonConvert.DeserializeObject<DataTable>(json);