gpt4 book ai didi

json - 为什么我要将 map 转换为 json,map 包含列表值,转换为 json 后什么都没有

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

func Test_JsonTtransfer(t *testing.T) {

uid := "306"
phoneList := list.New()
phoneList.PushBack("18513622928")
fmt.Println("phoneList=======", phoneList.Len())


jsonPhoneList, err := json.Marshal(phoneList)
if err != nil {
fmt.Println("error:", err)
}
fmt.Println("jsonPhoneList=======", string(jsonPhoneList))

idCardList := list.New()
idCardList.PushBack("230405197608040640")

request := make(map[string]interface{})
request["uid"] = uid

request["phones"] = phoneList

request["id_cards"] = idCardList

json, err := json.Marshal(request)
if err != nil {
fmt.Println("error:", err)
}

fmt.Println("json=======", json)
fmt.Println("json=======", string(json))
}

输出:

D:/Sys/server/Go\bin\go.exe test -v golang-test/com/http/test -run ^Test_JsonTtransfer$ phoneList======= 1 jsonPhoneList======= {} json======= [123 34 105 100 95 99 97 114 100 115 34 58 123 125 44 34 112 104 111 110 101 115 34 58 123 125 44 34 117 105 100 34 58 34 51 48 54 34 125] json======= {"id_cards":{},"phones":{},"uid":"306"} ok golang-test/com/http/test 0.482s

Phones 应该是列表值,但什么也不是。帮助我。

最佳答案

因为 List类型没有导出字段,并且类型未实现 Marshaler界面,列表值始终编码到文本 {}

一个简单的解决方法是使用 slice 而不是列表:

var phoneList []string
phoneList = append(phoneList, "18513622928")
fmt.Println("phoneList=======", len(phoneList)

playground example

关于json - 为什么我要将 map 转换为 json,map 包含列表值,转换为 json 后什么都没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224133/

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