在Go中解析JSON时如何指定默认值

我想解析Go中的JSON对象,但想为未指定的字段指定默认值。例如,我具有struct类型:

type Test struct {

A string

B string

C string

}

A,B和C的默认值分别是“ a”,“ b”和“ c”。这意味着当我解析json时:

{"A": "1", "C": 3}

我想得到的结构:

Test{A: "1", B: "b", C: "3"}

使用内置包可以encoding/json吗?否则,是否有任何具有此功能的Go库?

回答:

使用encoding / json可以实现:调用时json.Unmarshal,不需要给它一个空结构,可以给它一个默认值。

例如:

var example []byte = []byte(`{"A": "1", "C": "3"}`)

out := Test{

A: "default a",

B: "default b",

// default for C will be "", the empty value for a string

}

err := json.Unmarshal(example, &out) // <--

if err != nil {

panic(err)

}

fmt.Printf("%+v", out)

在Go操场上运行此示例将返回{A:1

B:default b C:3}

如您所见,json.Unmarshal(example, &out)将JSON解组为out,覆盖JSON中指定的值,但其他字段保持不变。

以上是 在Go中解析JSON时如何指定默认值 的全部内容, 来源链接: utcz.com/qa/435857.html

回到顶部