下面的代码将从字节数组中解组json数据,将浮点值的类型更改为int.

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    byt := []byte(`{"num":6.0}`)
    var dat map[string]interface{}
    fmt.Println(byt)

    if err := json.Unmarshal(byt, &dat); err != nil {
        panic(err)
    }
    fmt.Println(dat)
}

以下是操场链接:https://go.dev/play/p/60YNkhIUABU

有没有办法保持这种类型不变?

推荐答案

未编组的数字已经是float64.您可以通过在操场示例的末尾添加一行以打印数据类型来判断这一点:

fmt.Printf("%T\n", dat["num"])

如果您想让它更明确,您可以try 将dat的类型从map[string]interface{}更改为map[string]float64.

Json相关问答推荐

Azure Data Factory JSON输出格式问题

与错误相关的未定义&Quot;不是有效的JSON

PowerShell脚本未按预期生成预期的JSON输出

无法访问id的第三级json

当由.sh脚本执行时,AWS查询字符串不会提取任何数据

使用 JSON 和相对日期设置日历视图中 SharePoint 列表项的背景 colored颜色 格式

Powershell解析JSON文件中的键或值

使用 jq 将非统一的 json 输出转换为汇总表

使用杰克逊解析Kotlin 中的通用密封类

使用 KQL 和外部 data() 运算符从 json 文件中提取信息

PowerShell - JSON/PsCustomObject - 为什么我的数组被扁平化为一个对象?

hook到 Decodable.init() 以获得未指定的键?

如何从 rails 中的 respond_to 方法生成 json?

Python Flask-Restful POST 不采用 JSON 参数

IE8 原生 JSON.parse 错误导致堆栈溢出

将 Objective-C 对象序列化和反序列化为 JSON

使用 Retrofit 解析动态密钥 Json 字符串

JSON Schema:验证数字或空值

如何将 mysqli 结果转换为 JSON?

将 JsonArray 添加到 JsonObject