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.

Reply via email to