反映测试值是否为字符串

Mat*_*ios 1 reflection go

我正在尝试测试来自gjson库的值是否是最快和最简单的方式的字符串.我不想使用开关类型断言.

if reflect.TypeOf(gjson.Get(input, "name").Value()) != "string" {
    return "Not a string!"  
}
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?

Tim*_*per 5

gjson.Get返回一个Result,所以你可以简单地检查它的Type字段:

if gjson.Get(input, "name").Type != gjson.String {
    return "Not a string!"  
}
Run Code Online (Sandbox Code Playgroud)

  • @MatiasBarrios:您需要将`Result.Type`与`gjson.Null`进行比较.但是,你认为"null"可能是其他一些价值.打印整个对象进行确认. (3认同)