我怎么能正确解析这个?

时间:2015-07-07 01:30:43

标签: json vb.net parsing decode encode

这是我要解析的Json 我只想在参与者中解析SummonerID和SummonerName的项目

{"gameId":2187981399,"mapId":11,"gameMode":"CLASSIC","gameType":"MATCHED_GAME","gameQueueConfigId":4,"participants":[{"teamId":100,"spell1Id":4,"spell2Id":14,"championId":53,"profileIconId":25,"summonerName":"SertuSS","bot":false,"summonerId":36467479,"runes":[{"count":9,"runeId":5273},{"count":9,"runeId":5290},{"count":9,"runeId":5317},{"count":3,"runeId":5347}],"masteries":[{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232},{"rank":1,"masteryId":4311},{"rank":3,"masteryId":4313},{"rank":2,"masteryId":4322},{"rank":1,"masteryId":4323},{"rank":1,"masteryId":4324},{"rank":3,"masteryId":4331},{"rank":1,"masteryId":4334},{"rank":1,"masteryId":4341},{"rank":1,"masteryId":4342},{"rank":2,"masteryId":4344},{"rank":1,"masteryId":4352},{"rank":3,"masteryId":4353},{"rank":1,"masteryId":4362}]},{"teamId":100,"spell1Id":4,"spell2Id":14,"championId":126,"profileIconId":767,"summonerName":"EC MeIon","bot":false,"summonerId":20831311,"runes":[{"count":5,"runeId":5245},{"count":4,"runeId":5253},{"count":6,"runeId":5289},{"count":3,"runeId":5296},{"count":9,"runeId":5316},{"count":3,"runeId":5335}],"masteries":[{"rank":1,"masteryId":4111},{"rank":4,"masteryId":4113},{"rank":1,"masteryId":4114},{"rank":3,"masteryId":4122},{"rank":1,"masteryId":4124},{"rank":1,"masteryId":4131},{"rank":1,"masteryId":4132},{"rank":3,"masteryId":4134},{"rank":1,"masteryId":4141},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4162},{"rank":1,"masteryId":4311},{"rank":2,"masteryId":4312},{"rank":1,"masteryId":4313},{"rank":3,"masteryId":4322},{"rank":1,"masteryId":4324},{"rank":1,"masteryId":4334}]},{"teamId":100,"spell1Id":12,"spell2Id":4,"championId":68,"profileIconId":775,"summonerName":"Lions Dipzey","bot":false,"summonerId":19691098,"runes":[{"count":9,"runeId":5273},{"count":9,"runeId":5297},{"count":9,"runeId":5317},{"count":3,"runeId":5357}],"masteries":[{"rank":1,"masteryId":4111},{"rank":2,"masteryId":4113},{"rank":1,"masteryId":4114},{"rank":3,"masteryId":4123},{"rank":1,"masteryId":4124},{"rank":1,"masteryId":4133},{"rank":3,"masteryId":4134},{"rank":3,"masteryId":4143},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4154},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232}]},{"teamId":100,"spell1Id":11,"spell2Id":4,"championId":77,"profileIconId":710,"summonerName":"HiM EU","bot":false,"summonerId":22035836,"runes":[{"count":9,"runeId":5253},{"count":3,"runeId":5289},{"count":6,"runeId":5290},{"count":9,"runeId":5316},{"count":3,"runeId":5335}],"masteries":[{"rank":1,"masteryId":4111},{"rank":4,"masteryId":4113},{"rank":3,"masteryId":4122},{"rank":1,"masteryId":4131},{"rank":1,"masteryId":4132},{"rank":3,"masteryId":4134},{"rank":3,"masteryId":4142},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4212},{"rank":2,"masteryId":4214},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4224},{"rank":1,"masteryId":4232}]},{"teamId":100,"spell1Id":4,"spell2Id":7,"championId":15,"profileIconId":7,"summonerName":"Allen WaIker","bot":false,"summonerId":47477129,"runes":[{"count":9,"runeId":5245},{"count":9,"runeId":5289},{"count":9,"runeId":5317},{"count":3,"runeId":5337}],"masteries":[{"rank":4,"masteryId":4112},{"rank":1,"masteryId":4114},{"rank":3,"masteryId":4122},{"rank":1,"masteryId":4124},{"rank":1,"masteryId":4131},{"rank":1,"masteryId":4132},{"rank":3,"masteryId":4134},{"rank":1,"masteryId":4142},{"rank":1,"masteryId":4144},{"rank":1,"masteryId":4151},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232}]},{"teamId":200,"spell1Id":7,"spell2Id":4,"championId":429,"profileIconId":870,"summonerName":"Bermuda Triangle","bot":false,"summonerId":21414321,"runes":[{"count":9,"runeId":5245},{"count":3,"runeId":5277},{"count":3,"runeId":5289},{"count":3,"runeId":5301},{"count":9,"runeId":5317},{"count":3,"runeId":5337}],"masteries":[{"rank":4,"masteryId":4112},{"rank":1,"masteryId":4114},{"rank":3,"masteryId":4122},{"rank":1,"masteryId":4124},{"rank":1,"masteryId":4131},{"rank":1,"masteryId":4132},{"rank":3,"masteryId":4134},{"rank":2,"masteryId":4142},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232}]},{"teamId":200,"spell1Id":4,"spell2Id":11,"championId":9,"profileIconId":617,"summonerName":"GGCN Narkuss","bot":false,"summonerId":23402049,"runes":[{"count":9,"runeId":5273},{"count":9,"runeId":5295},{"count":9,"runeId":5316},{"count":3,"runeId":5357}],"masteries":[{"rank":1,"masteryId":4111},{"rank":4,"masteryId":4113},{"rank":3,"masteryId":4123},{"rank":1,"masteryId":4133},{"rank":3,"masteryId":4134},{"rank":3,"masteryId":4143},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4154},{"rank":1,"masteryId":4162},{"rank":3,"masteryId":4312},{"rank":2,"masteryId":4313},{"rank":3,"masteryId":4322},{"rank":1,"masteryId":4332}]},{"teamId":200,"spell1Id":4,"spell2Id":14,"championId":412,"profileIconId":22,"summonerName":"Flejne","bot":false,"summonerId":20637677,"runes":[{"count":9,"runeId":5245},{"count":9,"runeId":5289},{"count":9,"runeId":5315},{"count":1,"runeId":5335},{"count":2,"runeId":5347}],"masteries":[{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232},{"rank":3,"masteryId":4313},{"rank":1,"masteryId":4314},{"rank":3,"masteryId":4322},{"rank":1,"masteryId":4324},{"rank":3,"masteryId":4331},{"rank":1,"masteryId":4334},{"rank":1,"masteryId":4341},{"rank":1,"masteryId":4342},{"rank":2,"masteryId":4344},{"rank":1,"masteryId":4352},{"rank":3,"masteryId":4353},{"rank":1,"masteryId":4362}]},{"teamId":200,"spell1Id":4,"spell2Id":14,"championId":105,"profileIconId":7,"summonerName":"Ti0","bot":false,"summonerId":19783349,"runes":[{"count":9,"runeId":5298},{"count":9,"runeId":5317},{"count":3,"runeId":5357},{"count":9,"runeId":5402}],"masteries":[{"rank":1,"masteryId":4111},{"rank":3,"masteryId":4113},{"rank":3,"masteryId":4122},{"rank":3,"masteryId":4123},{"rank":1,"masteryId":4132},{"rank":1,"masteryId":4133},{"rank":3,"masteryId":4134},{"rank":3,"masteryId":4143},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4154},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":2,"masteryId":4222}]},{"teamId":200,"spell1Id":4,"spell2Id":12,"championId":150,"profileIconId":518,"summonerName":"greenrab","bot":false,"summonerId":31191309,"runes":[{"count":6,"runeId":5245},{"count":3,"runeId":5247},{"count":3,"runeId":5290},{"count":6,"runeId":5295},{"count":9,"runeId":5317},{"count":3,"runeId":5337}],"masteries":[{"rank":1,"masteryId":4111},{"rank":4,"masteryId":4113},{"rank":1,"masteryId":4114},{"rank":3,"masteryId":4122},{"rank":1,"masteryId":4124},{"rank":1,"masteryId":4131},{"rank":1,"masteryId":4132},{"rank":3,"masteryId":4134},{"rank":1,"masteryId":4141},{"rank":1,"masteryId":4144},{"rank":3,"masteryId":4152},{"rank":1,"masteryId":4162},{"rank":2,"masteryId":4211},{"rank":2,"masteryId":4212},{"rank":1,"masteryId":4221},{"rank":3,"masteryId":4222},{"rank":1,"masteryId":4232}]}],"observers":{"encryptionKey":"OfH+WMw79+/L1rme6DWMu6BsDWsrpHSw"},"platformId":"EUW1","bannedChampions":[{"championId":23,"teamId":100,"pickTurn":1},{"championId":81,"teamId":200,"pickTurn":2},{"championId":67,"teamId":100,"pickTurn":3},{"championId":268,"teamId":200,"pickTurn":4},{"championId":13,"teamId":100,"pickTurn":5},{"championId":79,"teamId":200,"pickTurn":6}],"gameStartTime":1436143008476,"gameLength":-145}

我的课程

Public Class Participant
    Public Property summonerName As String
    Public Property summonerId As Integer
End Class

Public Class Current_Game
    Public Property participants As List(Of Participant)
End Class

这是我目前的代码

    Dim jobj = JObject.Parse(jsonSource)
    Dim jName = jobj.Properties(0).Name
    Dim jItems = jobj(jName)
    Dim items = JsonConvert.DeserializeObject(Of Current_Game())(jItems.ToString)


    For n As Int32 = 0 To items.Length - 1
        tb_solo.AppendText(items(n).participants(n).summonerId & vbNewLine & items(n).participants(n).summonerName)

    Next

这是我得到的错误 将值2187984739转换为类型'LoL_Stats_Tool.Current_Game []'时出错。路径'',第1行,第10位。

1 个答案:

答案 0 :(得分:0)

在项目中只有一个数组参与者。这就是为什么你不能预约物品。

试试这个:

Dim jobj = JObject.Parse(jsonSource)
Dim jName = jobj.Properties(0).Name
Dim jItems = jobj(jName)
Dim items = JsonConvert.DeserializeObject(Of Current_Game())(jItems.ToString)


For n As Int32 = 0 To items.participants.Length - 1
    tb_solo.AppendText(items.participants(n).summonerId & vbNewLine & items.participants(n).summonerName)

Next