以下代码在最后一行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);
正常工作的正确方法是什么?
答案 0 :(得分:3)
这是你从第二行获得的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);