Помогите разобраться (json to struct)

116 views
Skip to first unread message

Андрей Шеховцов

unread,
Dec 4, 2020, 3:18:49 AM12/4/20
to Golang Russian
Всем привет. Никак не получается записать с файла users.json в структуру. Странность в том что нет никаких ошибок.

test. go:
package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)


type Users struct {
Name string `json:"name"`
Type string `json:"type"`
Age int `json:"age"`
}


func main() {

jsonFile, err := os.Open("users.json")
if err != nil {
fmt.Println(err)
}

fmt.Println("Successfully Opened users.json")
defer jsonFile.Close()

byteValue, _ := ioutil.ReadAll(jsonFile)

var users Users

json.Unmarshal(byteValue, &users)

fmt.Println("name:", users.Name)


}

users.json:
{
    "Users": {
        "name": "Elliot",
        "type": "Reader",
        "age": 23
    }
}

Leonid Nikolaev

unread,
Dec 4, 2020, 3:37:22 AM12/4/20
to gola...@googlegroups.com
Так это другая структура. Вы описали только вложенную, а надо еще сделать тип для внешней.
type U struct{
  Users Users `json:"Users"`
}

и сказать var users U, а не Users


пт, 4 дек. 2020 г. в 11:18, Андрей Шеховцов <cron...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/golang-ru/3dc1fbf8-2e9f-469e-a694-7d6da2f86256n%40googlegroups.com.


--
WBR, Leonid "nikonor" Nikolaev



Andrey Velikoredchanin

unread,
Dec 4, 2020, 3:38:44 AM12/4/20
to golang-ru
> json.Unmarshal(byteValue, &users)

Ну и хорошо-бы вот тут проверять ошибку. Тогда ошибки будут. :)

Андрей Шеховцов

unread,
Dec 4, 2020, 3:58:46 AM12/4/20
to Golang Russian
Спасибо всем, все работает. 4й день изучаю go и один из них потратил на эту проблему, пересмотрел множество рабочих примеров, так и не понял что делаю не так, но теперь вроде понял.

пятница, 4 декабря 2020 г. в 11:38:44 UTC+3, uncle...@gmail.com:
Reply all
Reply to author
Forward
0 new messages