如何将转义 json 转换为结构
How to convert escaped json into a struct
我在将转义的 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”return“source1a”等
我也在尝试在单元测试中编写它。
有些人可能会使用自定义解组方法,但我认为只进行两遍更容易:
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]
}
我在将转义的 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”return“source1a”等
我也在尝试在单元测试中编写它。
有些人可能会使用自定义解组方法,但我认为只进行两遍更容易:
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]
}