I want convert interface value to number, but when interface is number or number string, it will not work, I do not know why we can't convert by this way?

package main

import (
    "encoding/json"
    "fmt"
    "reflect"
)

func main() {
    number := 10
    strNumber := "10"
    test(number)
    test(strNumber)
}

func test(i interface{}) {
    strNum, ok := i.(json.Number)
    fmt.Println(strNum, ok, reflect.TypeOf(i))
}

It will produce result like this:

   false int
   false string