下面代码执行结果是true还是false?
package main
import (
"encoding/json"
"fmt"
)
func main() {
param := `{"layout":4,"name":"xiaobei"}`
content := map[string]interface{}{}
json.Unmarshal([]byte(param), &content)
layout := content["layout"]
fmt.Println(layout == 4)
}
是false。
为什么呢?
json反序列化后数字类型的值都会置为float64类型,数字4在go中默认是int类型,数据类型不一样,所以不相等。
怎么解决呢?
把4换成float64(4)或者4.0。