Golang确定json解码后是否为空字符串或null

时间:2017-09-13 14:45:05

标签: json go

我有以下示例。

1

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)
}

返回一个预期的空字符串。

2

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是否是""或未定义(密钥丢失)。

0 个答案:

没有答案