2017-11-18 103 views
0

我使用Jsonconvert.deserialize通用列表類型錯誤?

List<T> mylist = JsonConvert.DeserializeObject<List<T>>(instring); 

到deserializeobject(和頻繁使用此泛型例程多種數據類型)。我打了一個多數民衆贊成在給我的錯誤:

「無法反序列化當前的JSON對象(例如{」名稱「:」價值「})類型'System.Collections.Generic.List`1 [NetRestSqlApi.Models.CA_Users ]'',因爲該類型需要一個JSON數組(例如[1,2,3])才能正確地反序列化。 要修復此錯誤,請將JSON更改爲JSON數組(例如[1,2,3])...「

該數據是正確的。如果我反序列化對象的鍵入而不是使用泛型類型T,它工作正常。

List<NetRestSqlApi.Models.CA_Users> mylist1 = 
JsonConvert.DeserializeObject<List<NetRestSqlApi.Models.CA_Users>>(instring); 

我很茫然。我正在使用最新的newtonsoft 10.0.3。我已經調試和驗證T是與上面硬編碼相同的確切對象/模型。

我可以坐下來玩參數(我已經完成了),但在一天結束時根據其他帖子,我認爲反序列化應該對兩者都適用。我沒有看到任何數據問題,並可以在記事本++中反序列化,當我看着它時,這一切都是正確的。

對硬編碼之外的進一步診斷或解決方法有何建議? 謝謝。布倫特

+0

你能否提供[mcve],以便我們可以嘗試重現此問題? –

+0

謝謝Brian,但我找到了。我希望有一個人能夠俯視我的肩膀,告訴我這次我做了什麼愚蠢的事情。 – tallman

回答

0

謝謝布賴恩,但我發現它。我補充說。

如果(typeof運算(T)== typeof運算(CA_Users))

,發現我經過列表入T而不是對象的。所以在調試中它看起來不錯,但沒有。謝謝您的幫助。