gpt4 book ai didi

go - 如何将 []byte 解码为 json 结构,该结构作为值存储在字符串类型的变量中?

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

注意:myjsonstruct 是从数据库存储和读取的。为清楚起见硬编码

myjsonstruct := `{"fldA":"", "fldB":"", "fldC":""}`

targetJsonString := `{"fldA":"valueA","fldB":"valueB","fldC":"valueC","fldOther":"valueOther"}`

现在,我想将 targetJsonString 解码到 myjsonstruct 中,以便填充 myjsonstruct 中的相应字段。

请注意:myjsonstruct 是一个“字符串”,不能在代码中编程。我在编码时不知道这个结构。它将在运行时作为字符串读取,可能来自数据库。

谢谢!

最佳答案

试试这个:

package main

import (
"encoding/json"
"fmt"
)

type myjsonstruct struct {
FldA string `json:"fldA"`
FldB string `json:"fldB"`
FldC string `json:"fldC"`
}

func main() {
targetJsonString := `{"fldA":"valueA","fldA":"valueB","fldA":"valueC","fldOther":"valueOther"}`

res := &myjsonstruct{}
if err := json.Unmarshal([]byte(targetJsonString), res); err != nil {
panic(err)
}

myjsonstructBytes, err := json.Marshal(res)
if err != nil {
panic(err)
}
fmt.Println(string(myjsonstructBytes))
}

它将打印:{"fldA":"valueC","fldB":"","fldC":""}

在 Playground 上:https://play.golang.org/p/qUkGAmvsmAD

(!) 另请注意,myjsonstruct 中的字段必须是公开的(从大写字母开始),否则 unmarshaller 将无法访问这些字段。

关于go - 如何将 []byte 解码为 json 结构,该结构作为值存储在字符串类型的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52835458/

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