2015-08-14 3 views
0

Я пишу бутстрап для своего приложения. Он загружает последнюю версию приложения и устанавливает его. У меня проблема с парсером JSON в приложении. Я пытаюсь получить информацию из этого JSON:Deserializing объект JSON с JavaScriptSerializer

{ 
    "Launcher": { 
     "latestver": "<the latest version of the launcher>", 
     "url": "<url to the launcher pack>", 
    } 
} 

разобрать его, я создал структуру:

Public Structure Launcher 

    Public latestver As String 
    Public url As String 

End Structure 

Затем я попытался получить значения из JSON в Интернете:

Dim client As New WebClient() With {.Proxy = Nothing} 
    Dim Json As String = Await client.DownloadStringTaskAsync("<url to the launcher.json>") 

    Dim jss As New JavaScriptSerializer() 
    Dim thisLauncher As Launcher = jss.Deserialize(Of Launcher)(Json) 

    RemoteLauncherVer = thisLauncher.latestver 
    LauncherPackUrl = thisLauncher.url 

Но когда я проверил значения с MsgBox, значения были Nothing:

MsgBox(RemoteLauncherVer) 
    MsgBox(LauncherPackUrl) 

Может кто-нибудь помочь мне понять, почему?

ответ

0

Вам не хватает класса на уровне корня. Попробуйте сделать ваши классы, как это:

Public Class RootObject 
    Public Property Launcher As Launcher 
End Class 

Public Class Launcher 
    Public Property latestver As String 
    Public Property url As String 
End Class 

Тогда десериализации так:

Dim jss As New JavaScriptSerializer() 
Dim thisLauncher As Launcher = jss.Deserialize(Of RootObject)(json).Launcher 
Смежные вопросы