gpt4 book ai didi

golang 将新值设置为类型为 map[string]interface{} 的对象

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:40 25 4
gpt4 key购买 nike

我得到了像这样解析的 json str。

var bdoc interface{}
bson.UnmarshalJSON([]byte(gjson.Get(*str, "user").String()), &bdoc)

我的 bdoc 是 map[string]interface{} 类型。当我想从我的 map 中获取 key 时,我会这样做:

bdoc.(map[string]interface{})["pk"]

但是我怎样才能为那个“pk”键设置一个新值呢?我想转换它bdoc["pk"] = "1234567"。新值将不是接口(interface)类型,而是字符串类型。

最佳答案

你可以设置字符串和值保持为字符串类型

package main

import (
"fmt"
"log"
)

func main() {

var bdoc interface{}
aMap, ok := bdoc.(map[string]interface{})
if !ok {
log.Fatalf("Failed to cast %T", bdoc)
}
//depending on JSON settting pk number may have json.Numbe or float64
fmt.Prinf("%v %T\n", aMap["pk"], aMap["pk"])
aMap["pk"] ="1234"
fmt.Prinf("%v %T\n", aMap["pk"], aMap["pk"])

}

关于golang 将新值设置为类型为 map[string]interface{} 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com