2016-02-08 84 views
0

我的代碼這個工作線路通行證類型作爲參數來newtonsoft JSON反序列化

Public Shared Function JSONArrayToObject(source As String, result As Type) As Object 
    Return JsonConvert.DeserializeObject(Of PAManufacturer())(source) 
End Function 

結果是一種類型的,我想用的GetType(結果)或等效替換PAManufacturer。

我一直沒能解決這個問題。我可以有一百個這樣的反序列化方法,但我確定我應該能夠以某種方式使用結果變量。

回答

1

可以使用泛型函數(其中DeserializeObject是之一)這樣的:

Public Shared Function JSONArrayToObject(Of T)(source As String) As T() 
    Return JsonConvert.DeserializeObject(Of T())(source) 
End Function 

在那裏你可以把它作爲:

Dim arr as PAManufacturer() = JSONArrayToObject(Of PAManufacturer())(someSourceString) 

但如果你到了這個水平,人們不禁要問爲什麼你使用一個函數,而不是直接讓代碼調用JsonConvert.DeserializeObject

+0

你已經完成了我的引以爲豪的感謝,我刪除了記錄該方法中各種項目的其他代碼,這是根據第二個建議不直接使用代碼的唯一原因。感謝您的幫助 – user174634

+0

@ user174634我覺得可能還有比您提出的更多的東西,很高興它有所幫助! –

相關問題