我在將轉(zhuǎn)義的 json 對象轉(zhuǎn)換為結(jié)構(gòu)時遇到問題。我面臨的主要問題是源字段的轉(zhuǎn)義 json。以下數(shù)據(jù)是其保存方式。{ "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”等。我也試圖在單元測試中編寫它。
1 回答
幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊
有些人可能會做一個自定義的解封方法,但我認(rèn)為只做兩個傳遞更容易:
package main
import (
"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]
}
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消
