Включить поле во время маршала, но не во время маршала - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу включить поле password во время регистрации, но не хочу раскрывать его, когда запрашиваются данные профиля пользователя.

package main

import (
    "encoding/json"
    "fmt"
)

type User struct {
    UserName string `json:"username"`
    Password string `json:"-"`
}

func main() {
    data := []byte( `{"username": "username","password": "password"}`)
    user := User{}
    _ = json.Unmarshal(data, &user)

    user.Password = "password"
    user.UserName = "username"

    data, _ = json.Marshal(&user)
    fmt.Println(user)
    fmt.Println(string(data))
}

Я хочу сделать что-то вроде этого:

Unmarshal result

{username password}

Marshal result

{"username":"username"}

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете написать свой собственный Json-маршаллер и unmarshaller для структуры пользователя.Проверьте ссылку на эту игровую площадку: https://play.golang.org/p/ejmX9iDlvKk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...