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

时间:2011-12-04 13:01:31

标签: vb.net json

我正在尝试反序列化看起来像这样的JSON字符串:

    {'type':'clientlist','client_list':[]}

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

    ArgumentException was unhandled:
    Invalid JSON primitive: .

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

    Dim jss As New JavaScriptSerializer()
    Dim dict As Dictionary(Of String, Object) = jss.Deserialize(Of Dictionary(Of String, Object))(json)

它仍然会出现同样的错误。是不是可以解析它?

1 个答案:

答案 0 :(得分:10)

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

Public Class MyModel
    Public Property Type() As String
    Public Property Client_list() As String()
End Class

然后将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)