json.Unmarshal не парсит все данные
есть вот такая структура и парс данных
type UserArray struct {
Username string
Password string
}
content, _ := ioutil.ReadFile("../db/user.json")
var users []UserArray
json.Unmarshal([]byte(content), &users)
user.json:
[{"user":"admin","password":"123456789"},{"user":"user","password":"1234567890"}]
после Unmarshalling'а нет "user" в обоих массивах, в чем проблема?
Ответы (1 шт):
Автор решения: Senior Pomidor
→ Ссылка
вам нужно указать специальные тэги, которые укажут какое поле из JSON соответствует вашей структуре.
В вашем конкретном cлучае поле username(struct) != user(JSON), только поля Password совпадают. поэтому в результате вы видете только заполненые поля password вам либо нужно называть поля в структуре как в JSON, либо указать специальные тэги.
Подробнее тут
import (
"encoding/json"
"fmt"
)
type UserArray struct {
Username string `json:"user"`
Password string `json:"password"`
}
func main() {
content := `[{"user":"admin","password":"123456789"},{"user":"user","password":"1234567890"}]`
var users []UserArray
json.Unmarshal([]byte(content), &users)
fmt.Printf("%v", users)
}