Como reconhecer o valor nulo e o campo não especificado ao desfazer a distribuição no Go?

Gostaria de saber se é possível diferenciar um valor nulo e um valor de campo não especificado.

Aqui está um exemplo:

var jsonBlob = []byte(`[
    {"Name": "A", "Description": "Monotremata"},
    {"Name": "B"},
    {"Name": "C", "Description": ""}
]`)

type Category struct {
    Name  string
    Description string
}

var categories []Category
err := json.Unmarshal(jsonBlob, &categories)

if err != nil {
    fmt.Println("error:", err)
}
fmt.Printf("%+v", categories)

Também disponível aqui:https://play.golang.org/p/NKObQB5j4O

Resultado:

[{Name:A Description:Monotremata} {Name:B Description:} {Name:C Description:}]

Portanto, neste exemplo, é possível diferenciar a descrição da categoria B da categoria C?

Eu só quero ser capaz de diferenciá-los para ter um comportamento diferente no programa.