如何使用VB.Net解析Steam的JSON响应

时间:2016-11-28 21:45:49

标签: json vb.net parsing steam

修改

很好地解释我最终需要的东西:

我们正在寻找什么蒸汽告诉我们一个特定的应用程序,例如" Dead by Daylight"。

//adapters/sites/show.js

结果,存在以下类似JSON的服务器答案。

Dim address As String = "http://store.steampowered.com/api/appdetails?appids=381210&filters=basic"

Dim link As WebClient = New WebClient()

Dim info As String = link.DownloadString(address)

最后我想反序列化,以便每个属性都可以作为字符串访问

{"381210":{"success":true,"data":{"type":"game","name":"Dead by Daylight","steam_appid":381210,"required_age":0,"is_free":false,"dlc":[492140,509060,530710,530711,554380],"detailed_description":"<h1>Digitale Deluxe-Edition<\/h1><p><img src=\"http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/extras\/dlx_1.jpg?t=1480018883\">\r<br>The Deluxe Edition includes the base game, official soundtrack, digital art book, two masks for PAYDAY 2.<\/p><br><h1>\u00dcber das Spiel<\/h1><strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\"https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\" target=\"_blank\" rel=\"noreferrer\"  >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\"bb_tag\">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt.","about_the_game":"<strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\"https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\" target=\"_blank\" rel=\"noreferrer\"  >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\"bb_tag\">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt.","short_description":"Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft und T\u00f6tung zu entgehen.","supported_languages":"Englisch<strong>*<\/strong>, Franz\u00f6sisch, Italienisch, Deutsch, Spanisch, Russisch, Chinesisch (vereinfacht)<br><strong>*<\/strong>Sprachen mit voller Audiounterst\u00fctzung","header_image":"http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/header.jpg?t=1480018883","website":"http:\/\/www.deadbydaylight.com","pc_requirements":{"minimum":"<strong>Minimum:<\/strong>\r<br><ul class=\"bb_ul\"><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 &amp; Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8120\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce GTX 460 1GB oder AMD HD 6850 1GB  o\tDirectX: Version 11\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>","recommended":"<strong>Empfohlen:<\/strong>\r<br><ul class=\"bb_ul\"><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 &amp; Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8300 oder h\u00f6her\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce 760 or AMD HD 8800 oder h\u00f6her mit 4GB RAM\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>"},"mac_requirements":[],"linux_requirements":[],"legal_notice":"Dead by Daylight ist eine Handelsmarke von Behaviour Interactive Inc. Alle anderen Handelsmarken sind Eigentum ihrer jeweiligen Inhaber. Entwickelt von Behaviour Digital und publiziert von Starbreeze Studios. Alle Rechte vorbehalten."}}}

1 个答案:

答案 0 :(得分:0)

为了帮助您可视化您需要构建的类结构,您可以use使用此工具

我会假设你需要让它变得动态(原谅我的黑客,因为我不熟悉VB和JSON)所以我用静态 id 381210 属性>属性名称,因此我们的类可以更容易地反映数据。

首先我得到数据(JSON)解析它(是解析)然后我们将它反序列化为我们的类属性,以便我们以后可以轻松访问数据。

将此部分放入您的活动中(例如点击按钮)

   'This is your JSON string from STEAM
    Dim a As String = "{""381210"":{""success"":true,""data"":{""type"":""game"",""name"":""Dead by Daylight"",""steam_appid"":381210,""required_age"":0,""is_free"":false,""dlc"":[492140,509060,530710,530711,554380],""detailed_description"":""<h1>Digitale Deluxe-Edition<\/h1><p><img src=\""http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/extras\/dlx_1.jpg?t=1480018883\"">\r<br>The Deluxe Edition includes the base game, official soundtrack, digital art book, two masks for PAYDAY 2.<\/p><br><h1>\u00dcber das Spiel<\/h1><strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\""https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\"" target=\""_blank\"" rel=\""noreferrer\""  >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\""bb_tag\"">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt."",""about_the_game"":""<strong>Der Tod ist keine Zuflucht.<\/strong>\r<br>\r<br>Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft, Folter und T\u00f6tung zu entgehen. \r<br>\r<br>Die \u00dcberlebenden spielen in der Dritte-Person-Perspektive und haben den Vorteil, einen besseren \u00dcberblick \u00fcber die Situation zu haben. Der Killer spielt in der Ich-Perspektive und ist mehr auf seine Beute fokusiert.\r<br>\r<br>Das Ziel der \u00dcberlebenden bei jedem Zusammentreffen ist es, dem T\u00f6tungsgebiet zu entkommen, ohne vom Killer gefangen zu werden \u2013 etwas, das sich leichter anh\u00f6rt, als es ist, vor allem, wenn sich die Umgebung jedes Mal, wenn du spielst, ver\u00e4ndert.\r<br>\r<br>Mehr Informationen \u00fcber das Spiel sind unter <a href=\""https:\/\/steamcommunity.com\/linkfilter\/?url=http:\/\/www.deadbydaylight.com\"" target=\""_blank\"" rel=\""noreferrer\""  >http:\/\/www.deadbydaylight.com<\/a> verf\u00fcgbar.<h2 class=\""bb_tag\"">Hauptmerkmale<\/h2>\r\u2022\t<strong>\u00dcberlebt gemeinsam... Oder auch nicht<\/strong> - \u00dcberlebende k\u00f6nnen entweder mit den anderen kooperieren oder eigenn\u00fctzig sein. Deine \u00dcberlebenschance wird variieren, je nachdem, ob ihr als Team zusammenarbeitet oder du allein loslegst. Wird es dir gelingen, den Killer zu \u00fcberlisten und seinen T\u00f6tungsgebiet zu entkommen ?\r<br>\r<br>\u2022\t<strong>Wo bin ich? <\/strong> - Jedes Level ist verfahrensorientiert angelegt, daher wei\u00dft du nie, was dich erwartet. Zuf\u00e4llige Spawnpunkte bedeuten, dass du dich niemals sicher f\u00fchlen wirst, da sich die Welt und ihre Gefahren jedes Mal, wenn du spielst, ver\u00e4ndern.\r<br>\r<br>\u2022\t<strong>Ein Festmahl f\u00fcr Killer <\/strong> - Dead by Daylight sch\u00f6pft aus allen Ecken der Horrowelt. Als Killer kannst du alles spielen, vom m\u00e4chtigen Zers\u00e4bler bis zum furchteinfl\u00f6\u00dfenden, paranormalen Entitus.\r<br>\r<br>\u2022\t<strong>Tiefer und tiefer <\/strong> - Jeder Killer und \u00dcberlebender hat sein eigenes, tiefes Fortschrittssystem und jede Menge Freischaltbares, das auf deine pers\u00f6nliche Strategie angepasst werden kann. Erfahrung, F\u00e4higkeiten und Verst\u00e4ndnis der Umgebung sind der Schl\u00fcssel zum Jagen oder \u00dcberlisten des Killers.\r<br>\r<br>\u2022\t<strong>Reale Spieler, reale Angst <\/strong> - Die verfahrensabh\u00e4ngigen Levels und wirkliche, menschliche Reaktionen bis hin zum Horror, machen jeden Spielabschnitt zu einem unerwarteten Szenario. Du kannst nie vorher sagen, wie es ausgehen wird. Ambiente, Musik und entspannte Umgebungen vereinen sich zu einer angsteinfl\u00f6\u00dfenden Erfahrung. Vielleicht k\u00f6nntest du mit gen\u00fcgend Zeit sogar herausfinden, was sich im Nebel verbirgt."",""short_description"":""Dead by Daylight ist ein Multiplayer-Horrorspiel (4vs1), in dem ein Spieler die Rolle eines wilden Killers \u00fcbernimmt und die anderen vier Spieler als \u00dcberlebende spielen, die versuchen, dem Killer zu entkommen sowie Gefangenschaft und T\u00f6tung zu entgehen."",""supported_languages"":""Englisch<strong>*<\/strong>, Franz\u00f6sisch, Italienisch, Deutsch, Spanisch, Russisch, Chinesisch (vereinfacht)<br><strong>*<\/strong>Sprachen mit voller Audiounterst\u00fctzung"",""header_image"":""http:\/\/cdn.akamai.steamstatic.com\/steam\/apps\/381210\/header.jpg?t=1480018883"",""website"":""http:\/\/www.deadbydaylight.com"",""pc_requirements"":{""minimum"":""<strong>Minimum:<\/strong>\r<br><ul class=\""bb_ul\""><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 &amp; Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8120\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce GTX 460 1GB oder AMD HD 6850 1GB  o\tDirectX: Version 11\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>"",""recommended"":""<strong>Empfohlen:<\/strong>\r<br><ul class=\""bb_ul\""><li><strong>Betriebssystem:<\/strong> 64-bit Betriebssystem (Windows 7, Windows 8 &amp; Windows 8.1)\r<br><\/li><li><strong>Prozessor:<\/strong> Intel Core i3-4170 or AMD FX-8300 oder h\u00f6her\r<br><\/li><li><strong>Arbeitsspeicher:<\/strong> 8 GB RAM\r<br><\/li><li><strong>Grafik:<\/strong> DX11 Kompatible GeForce 760 or AMD HD 8800 oder h\u00f6her mit 4GB RAM\r<br><\/li><li><strong>DirectX:<\/strong> Version 11\r<br><\/li><li><strong>Netzwerk:<\/strong> Breitband-Internetverbindung\r<br><\/li><li><strong>Speicherplatz:<\/strong> 15 GB verf\u00fcgbarer Speicherplatz\r<br><\/li><li><strong>Soundkarte:<\/strong> DX11 kompatibel\r<\/li><\/ul>""},""mac_requirements"":[],""linux_requirements"":[],""legal_notice"":""Dead by Daylight ist eine Handelsmarke von Behaviour Interactive Inc. Alle anderen Handelsmarken sind Eigentum ihrer jeweiligen Inhaber. Entwickelt von Behaviour Digital und publiziert von Starbreeze Studios. Alle Rechte vorbehalten.""}}}"
    'Pass the string to my parsing function (note this is parsing, below is called deserialization) 
    a = editJson(a)
    'Create an object using Newtonsoft's Json, set Example (class) varaibles using the Json data (a)
    Dim obj = JsonConvert.DeserializeObject(Of Example)(a)
    'Show a message box with one of the object's names from the JSon class.
    MsgBox(obj.id.data.name)

此处我们需要解析数字 381210 并将其替换为我们的 id 属性名称

Function editJson(ByVal str As String) As String
    'Get the first occurance of "
    Dim first As Integer = str.IndexOf("""")
    'Get the next occurance of " (3 is the starting offset)
    Dim last As Integer = str.IndexOf("""", 3)
    'Remove everything inside the first set of quotes
    str = str.Remove(first + 1, last - 2)
    'Insert ID where your number used to be (we need to do this because our JSon converter is looking for the 381210 as a proprety, but we can't easily assign a dynamic property, so instead we parse out the property name and replace it with our ID [note this id is also duplicated data as it shows up as the steam_appid]
    Return str.Insert(2, "id")
End Function

最后,我们需要让我们的类结构与我们收到的JSON相匹配,这可以这样做:

Public Class PcRequirements
    Public Property minimum As String
    Public Property recommended As String
End Class

Public Class Data
    Public Property type As String
    Public Property name As String
    Public Property steam_appid As Integer
    Public Property required_age As Integer
    Public Property is_free As Boolean
    Public Property dlc As Integer()
    Public Property detailed_description As String
    Public Property about_the_game As String
    Public Property short_description As String
    Public Property supported_languages As String
    Public Property header_image As String
    Public Property website As String
    Public Property pc_requirements As PcRequirements
    Public Property mac_requirements As Object()
    Public Property linux_requirements As Object()
    Public Property legal_notice As String
End Class

Public Class Game
    Public Property success As Boolean
    Public Property data As Data
End Class

Public Class Example
    Public Property id As Game
End Class

另外,请查看this帖子,了解类结构必须匹配的原因。另请参阅this帖子,了解有关制作课程结构的更多信息。

值得注意的是,在这些术语中,解析和反序列化之间的区别在于编写循环以完成并读取数据,在每个新属性类型中将其拆分为数组;另一方面,我们将反序列化直接放入一个对象(类结构)中,这是一个更具体的术语(这就是为什么注释中存在一些混淆)this post给出了差异的简要解释