Golang structのフィールドにomitemptyを指定した時の振る舞い

1.golang structのフィールドにomitemptyを指定した時の振る舞い
・nilを入れた時にフィールドが省略されている
2.code

package main

import (
    "encoding/json"
    "fmt"
)

type Employee_s struct {
    Num         *interface{} `json:"num,omitempty"`
}

func main() {

   var NULL interface{};
    employee := [7] Employee_s{}

    var isNull_1,isNull_2,isNull_3,isNull_4,isNull_5  interface{};

    isNull_1 = nil
    isNull_2 = false
    isNull_3 = true
    isNull_4 = 0
    isNull_5 = ""

    employee[0].Num = &isNull_1;
    employee[1].Num = &isNull_2;
    employee[2].Num = &isNull_3;
    employee[3].Num = &isNull_4;
    employee[4].Num = &isNull_5;
    employee[5].Num = nil
    employee[6].Num = &NULL

    json_string, _ := json.Marshal(employee)

    fmt.Println(string(json_string))
}

3.結果

[{"num":null},{"num":false},{"num":true},{"num":0},{"num":""},{},{"num":null}]