如何将转义的 json 转换为结构

我在将转义的 json 对象转换为结构时遇到问题。


我面临的主要问题是源字段的转义 json。以下数据是其保存方式。


{

  "key": "123",

  "sources": "{\"1a\":\"source1a\",\"2b\":\"source2b\",\"3c\":\"source3c\",\"default\":\"sourcex\"}"

}

type config struct {

  Key     string `json:"key" validate:"required"`

  Sources ???? `json:"sources" validate:"required"`

}

然后,我将有一个源值,并希望检查我的值是否在json中找到。如果我的值是“1a”,则返回“源1a”等。


我也试图在单元测试中编写它。


茅侃侃
浏览 101回答 1
1回答

幕布斯7119047

有些人可能会做一个自定义的解封方法,但我认为只做两个传递更容易:package mainimport (   "encoding/json"   "fmt")const s = `{   "key": "123",   "sources": "{\"1a\":\"source1a\",\"2b\":\"source2b\",\"3c\":\"source3c\",\"default\":\"sourcex\"}"}`func main() {   var t struct{Key, Sources string}   json.Unmarshal([]byte(s), &t)   m := make(map[string]string)   json.Unmarshal([]byte(t.Sources), &m)   fmt.Println(m) // map[1a:source1a 2b:source2b 3c:source3c default:sourcex]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go