![](/img/trans.png)
[英]How to set new value to struct member of explicit type from interface{} value (reflection)? Golang
[英]golang set new value to object with type map[string]interface{}
我有我這樣解析的json str。
var bdoc interface{}
bson.UnmarshalJSON([]byte(gjson.Get(*str, "user").String()), &bdoc)
我的bdoc類型為map [string] interface {}。 當我想從地圖上獲取鑰匙時,我會這樣:
bdoc.(map[string]interface{})["pk"]
但是,如何為該“ pk”鍵設置一個新值? 我想轉換該bdoc [“ pk”] =“ 1234567”。 新值將不是interface類型,而是string類型。
您可以設置字符串和值保持為字符串類型
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"])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.