Структура из ответа JSON - PullRequest
       4

Структура из ответа JSON

0 голосов
/ 19 апреля 2019

У меня есть ответ json с динамическими клавишами, и у меня возникли некоторые трудности с его отменой. Может ли кто-нибудь помочь со структурами?

{
    "accountDetails": {
        "123": {
            "userDetails": {
                "login": 123
            }
        },
        "456": {
            "userDetails": {
                "login": 456
            }
        }
    }
}

В настоящее время мои структуры:

type Response struct {
    AccountDetails AccountDetails `json:"accountDetails"`
}

type AccountDetails struct {
    Accounts map[string]UserDetails
}

type UserDetails struct {
    Account Account `json:"userDetails"`
}

type Account struct {
   Login int `json:"login"`
}

1 Ответ

0 голосов
/ 19 апреля 2019
var data = []byte(`{
    "accountDetails": {
        "123": {
            "userDetails": {
                "login": 123
            }
        },
        "456": {
            "userDetails": {
                "login": 456
            }
        }
    }
}`)

type Response struct {
    AccDetails map[string]AccountDetails `json:"accountDetails"`
}

type AccountDetails struct {
    UserDetails struct {
        Login int `json:"login"`
    } `json:"userDetails"`
}

func main() {
    var resp Response
    if err := json.Unmarshal(data, &resp); err != nil {
        fmt.Fprintf(os.Stderr, "json err: %v", err)
        os.Exit(1)
    }
    fmt.Printf("%T\n", resp.AccDetails)
    for user, userDet := range resp.AccDetails {
        fmt.Println(user, userDet.UserDetails.Login)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...