¿Cómo reconocer el valor vacío y el campo no especificado al desarmar en Go?

Me gustaría saber si es posible diferenciar un valor vacío y un valor de campo no especificado.

Aquí hay un ejemplo:

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)

También disponible aquí:https://play.golang.org/p/NKObQB5j4O

Salida:

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

Entonces, en este ejemplo, ¿es posible diferenciar la descripción de la categoría B de la categoría C?

Solo quiero poder diferenciarlos para tener un comportamiento diferente en el programa.

Respuestas a la pregunta(1)

Su respuesta a la pregunta