【go】json字符串反序列化后数字值的数据类型


下面代码执行结果是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。

相关推荐

  1. 序列序列、pytest-DDT数据驱动

    2024-04-21 19:08:04       50 阅读
  2. 手撕代码: C++实现数据序列序列

    2024-04-21 19:08:04       29 阅读
  3. 25、Flink 支持数据类型序列详解

    2024-04-21 19:08:04       25 阅读
  4. PHP 序列字符串逃逸

    2024-04-21 19:08:04       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 19:08:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 19:08:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 19:08:04       82 阅读
  4. Python语言-面向对象

    2024-04-21 19:08:04       91 阅读

热门阅读

  1. dns高防和ip高防的区别是什么?

    2024-04-21 19:08:04       115 阅读
  2. IP和域名可以共用一个SSL证书吗

    2024-04-21 19:08:04       40 阅读
  3. 物理安全-中的网络安全包含哪些内容

    2024-04-21 19:08:04       109 阅读
  4. js生成pdf

    2024-04-21 19:08:04       102 阅读
  5. Qt解析json格式数据

    2024-04-21 19:08:04       36 阅读