Try: > type ParticipantIty struct { > ParticipantId int > Player Player > } >
On Thursday, June 29, 2017 at 6:10:03 AM UTC-6, Martin Spasov wrote: > > Hey guys, > > I have been trying to decode a json object into a struct with nested > structs. When the struct is 1 level deep it does not create problems, but > if i have a struct with an attribute that is a struct i get the error > present in the title. Here is part of the code : > > Json : > > { > "seasonId": 8, > "queueId": 420, > "gameId": 3239663966, > "participantIdentities": [ > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "MineManuDeYutu", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/219194561", > "platformId": "EUW1", > "currentAccountId": 219194561, > "profileIcon": 1666, > "summonerId": 68726031, > "accountId": 219194561 > }, > "participantId": 1 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Just Deadly", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/205050256", > "platformId": "EUW1", > "currentAccountId": 205050256, > "profileIcon": 1666, > "summonerId": 47317494, > "accountId": 205050256 > }, > "participantId": 2 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "CougarHunting", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/36397748", > "platformId": "EUW1", > "currentAccountId": 36397748, > "profileIcon": 1666, > "summonerId": 32741461, > "accountId": 36397748 > }, > "participantId": 3 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Loca111", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/231580371", > "platformId": "EUW1", > "currentAccountId": 231580371, > "profileIcon": 1665, > "summonerId": 96106805, > "accountId": 231580371 > }, > "participantId": 4 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "BoostedRiven420", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/231287442", > "platformId": "EUW1", > "currentAccountId": 231287442, > "profileIcon": 1665, > "summonerId": 95496854, > "accountId": 231287442 > }, > "participantId": 5 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Hroom", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/217895755", > "platformId": "EUW1", > "currentAccountId": 217895755, > "profileIcon": 1665, > "summonerId": 66941009, > "accountId": 217895755 > }, > "participantId": 6 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Nyss3", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/22525212", > "platformId": "EUW1", > "currentAccountId": 22525212, > "profileIcon": 1665, > "summonerId": 19693763, > "accountId": 22525212 > }, > "participantId": 7 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Number2333", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/225600988", > "platformId": "EUW1", > "currentAccountId": 225600988, > "profileIcon": 1665, > "summonerId": 82017867, > "accountId": 225600988 > }, > "participantId": 8 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "Asianpowerbabe", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/204195645", > "platformId": "EUW1", > "currentAccountId": 204195645, > "profileIcon": 1665, > "summonerId": 45862904, > "accountId": 204195645 > }, > "participantId": 9 > }, > { > "player": { > "currentPlatformId": "EUW1", > "summonerName": "DynastyBeast", > "matchHistoryUri": > "/v1/stats/player_history/EUW1/39635851", > "platformId": "EUW1", > "currentAccountId": 39635851, > "profileIcon": 1666, > "summonerId": 36712797, > "accountId": 39635851 > }, > "participantId": 10 > } > ], > "gameVersion": "7.12.190.9002", > "platformId": "EUW1", > "gameMode": "CLASSIC", > "mapId": 11, > "gameType": "MATCHED_GAME", > > > Code : > > > type DetailedMatch struct { > SeasonId int > QueueId int > GameId int > ParticipantIdentities []ParticipantIty > GameVersion string > PlatformId string > GameMode string > MapId int > GameType string > Teams []Team > Participants json.RawMessage > GameDuration int > GameCreation int > } > > type ParticipantIty struct { > ParticipantId int > Player []Player > } > > type Player struct { > CurrentPlatformId string `json:"currentPlatformId"` > SummonerName string `json:"summonerName"` > MatchHistoryUri string `json:"matchHistoryUri"` > PlatformId string `json:"platformId"` > CurrentAccountId int `json:"currentAccountId"` > ProfileIcon int `json:"profileIcon"` > SummonerId int `json:"summonerId"` > AccountId int `json:"accountId"` > } > > The code where i call the marshal > > > func GetMatchById(matchId string, server string) (*DetailedMatch, > error) { > var Response, err = http.Get(fmt.Sprintf(ENDPOINT_MATCH_BY_GAME_ID, > server, matchId, string(KEY))) > var Details = DetailedMatch{} > > if err != nil { > fmt.Println(123) > return &Details, err > } else { > var ByteResponse, ByteError = ioutil.ReadAll(Response.Body) > if ByteError != nil { > fmt.Println(124) > return &Details, ByteError > } else { > var UnmarshalError = json.Unmarshal(ByteResponse, &Details) > if UnmarshalError != nil { > fmt.Println(UnmarshalError) > return &Details, UnmarshalError > } else { > return &Details, nil > } > } > } > } > > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.