VB.NET JavaScriptSerializer()反序列化字典数组成员

Eri*_*son 1 vb.net json

我试图反序列化一个看起来像这样的JSON字符串:

    {'type':'clientlist','client_list':[]}
Run Code Online (Sandbox Code Playgroud)

我正在使用JavaScriptSerializer()来做到这一点.由于某种原因,JavaScriptSerializer()在成员'client_list'上窒息.它没有提供非常好的信息.它给出的错误是:

    ArgumentException was unhandled:
    Invalid JSON primitive: .
Run Code Online (Sandbox Code Playgroud)

所以,你可以看到它非常不具描述性.我尝试了各种不同的反序列化方法,即使是这样:

    Dim jss As New JavaScriptSerializer()
    Dim dict As Dictionary(Of String, Object) = jss.Deserialize(Of Dictionary(Of String, Object))(json)
Run Code Online (Sandbox Code Playgroud)

它仍然会给出同样的错误.是不是可以解析那个?

Dar*_*rov 11

我会定义一个模型来表示我的JSON数据:

Public Class MyModel
    Public Property Type() As String
    Public Property Client_list() As String()
End Class
Run Code Online (Sandbox Code Playgroud)

然后将JSON字符串反序列化为此模型:

Dim json = "{'type':'clientlist','client_list':['client 1','client 2']}"
Dim jss As New JavaScriptSerializer()
Dim model As MyModel = jss.Deserialize(Of MyModel)(json)
Run Code Online (Sandbox Code Playgroud)