json.unmarshal() - return 无

json.unmarshal() - return nil

我从 base(由 json.Marshal 制作的切片)中获取一个字节的正常切片并尝试解码它们,但是 json.unmarshal() - return nil

代码:

coded := redis.LoadFromBase()
uncoded := json.Unmarshal(coded, &p)

fmt.Println("Bytes:", coded)
fmt.Println("Unmarshalled:", uncoded)

返回:

Bytes: [123 34 84 105 116 108 101 34 58 34 97 34 44 34 67 111 110 116 101 110 116 34 58 34 98 34 125]
Unmarshalled: <nil>

LoadFromBase() 工作正常

您正在打印 json.Unmarshal 返回的错误,而不是实际的解码值。现在是 nil 所以一切都很好。

应该是:

coded := redis.LoadFromBase()
err := json.Unmarshal(coded, &p)
if (err != nil) {
    // handle error here
}

fmt.Println("Bytes:", coded)
fmt.Println("Unmarshalled:", p)