繁体   English   中英

使用JavaScriptSerializer反序列化JSON对象

[英]Deserializing a JSON object with JavaScriptSerializer

我正在为我的应用程序编写引导程序。 它会下载该应用程序的最新版本并进行安装。 我对应用程序的JSON解析部分有疑问。 我正在尝试从此JSON获取信息:

{
    "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)

有人可以帮我找出原因吗?

您在根级别上缺少一个类。 尝试使您的班级像这样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM