2014-10-31 197 views
0

下面的代碼提供的最後一行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

數據,你在路過這是什麼原因錯誤?從第二行開始'json'是什麼樣的? – gunr2171 2014-10-31 20:22:20

+0

我在這裏使用了第一個DataTable示例來測試http://www.dotnetperls.com/datatable – pathDongle 2014-10-31 20:23:50

回答

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" 
    }, 
    ..... 

通知的第一個字符,一個[。這意味着它是一個數組,並且不是對象。這是大關鍵字。如果您想將JSON字符串回一個DataTable

DataTable dt = GetTable(); 
string json = JsonConvert.SerializeObject(dt, Formatting.None); 
var @object = JArray.Parse(json); // <-- Using JArray, not JObject 

,您可以使用此行::

因此,使用這種

var dataTable2 = JsonConvert.DeserializeObject<DataTable>(json); 
相關問題