我是 Golang 的新手。我必须像在 javascriptmap[string]interface{}中那样在 Golang 中对 a 进行字符串化JSON.stringify。在 javascript 中,undefined当你这样做时,它们的值会被省略,JSON.stringify而当我json.Marshal在 Golang 中为nil值做时,我想要同样的事情。例如在 javascript 中
var activity = {"isvalid": true, "value": {"prop": undefined}, "prop": undefined}
console.log(JSON.stringify(activity))
// Output: {"isvalid":true,"value":{}}
但是在 Golang 如果我这样做
activity := map[string]interface{}{
"isvalid": true,
"value": map[string]interface{}{"prop": nil},
"prop": nil,
}
jsonStr, _ := json.Marshal(activity)
fmt.Println(string(jsonStr))
// output: {"isvalid":true,"prop":null,"value":{"prop":null}}
https://play.golang.org/p/dvmz32phdNU
输出存在差异,什么是使 Golang 中的输出与 Javascript 相同的好方法?
编辑:
用例涉及从各种类型的来源获取数据,map[string]interface{}并且键可以是任意的,因此将其转换为结构对我来说不是一个选择。
qq_遁去的一_1
倚天杖
随时随地看视频慕课网APP
相关分类