我有以下示例。
package main
import (
"encoding/json"
"fmt"
)
type JSType struct {
Value string `json:value`
Empty string `json:empty`
}
func main() {
str := `{"value": "base64", "empty": "", "params": {}}`
var decoded JSType
metaBin := []byte(str)
json.Unmarshal(metaBin, &decoded)
fmt.Println(decoded.Empty)
}
返回一个预期的空字符串。
package main
import (
"encoding/json"
"fmt"
)
type JSType struct {
Value string `json:value`
Empty string `json:empty`
}
func main() {
str := `{"value": "base64", "params": {}}`
var decoded JSType
metaBin := []byte(str)
json.Unmarshal(metaBin, &decoded)
fmt.Println(decoded.Empty)
}
在第二个例子中我删除了空的'来自json的密钥,它仍然返回一个空字符串。所以我的问题是如何确定valie是否是""或未定义(密钥丢失)。