将类型作为参数传递给newtonsoft json反序列化

时间:2016-02-08 12:48:30

标签: json vb.net

我有这个代码工作

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

结果是一个类型,我想用GetType(结果)或等价物替换PAManufacturer。

我无法解决这个问题。我可以有一百个这样的反序列化方法,但我确信我应该能够以某种方式使用结果变量。

1 个答案:

答案 0 :(得分:1)

您可以使用通用函数(其中DeserializeObject为1):

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