go json.Unmarshal 如何判断里面的错误
时间: 2024-04-23 21:22:09 浏览: 255
在Go语言中,使用`json.Unmarshal()`函数将JSON字符串解析为结构体对象时,如果JSON字符串不符合结构体定义或者JSON格式不正确,会返回一个`error`类型的错误值。我们可以通过判断`error`的值是否为`nil`来判断`json.Unmarshal()`函数的执行是否成功。
如果`error`的值不为`nil`,说明解析JSON字符串时出现了错误,可以通过调用`error`的`Error()`方法获取错误信息的字符串表示。
例如,假设我们有以下JSON字符串:
```json
{
"name": "张三",
"age": 18,
"gender": "男"
}
```
我们可以定义一个结构体类型来表示这个JSON对象:
```go
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Gender string `json:"gender"`
}
```
然后可以使用以下代码将JSON字符串解析为`Person`对象:
```go
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
fmt.Println("解析JSON字符串失败:", err.Error())
return
}
```
注意到在上述代码中,我们判断了`err`是否为`nil`,如果不为`nil`,则打印错误信息。如果`err`为`nil`,则说明JSON字符串解析成功,`p`变量已经被赋值为对应的`Person`对象。
阅读全文