А вот такой вопрос: а кто-нибудь делал на го различие передан ли параметр json запросе или передан со значением null?
Например запрос апдейта юзера может содержать не содержать поле address и тогда его трогать не надо или может содержать null и тогда чувак стал бомжом и ему надо удалить адрес.
Я уже кидал тут рецепт) смысл примерно следующий: делаете новый тип из 2 полей: указатель на нужный тип + boolean поле, а в UnmarshalJSON делаете присвоение второму полю значения true, затем json.Unmarshal входа в первое поле