## 疑问
当我们解析json请求体时, 前端可能不会严格按照实体对象的类型来传递,比如表form单中某个字段,
接口参数对象定义的是int, 但前端绑定到js参数时可能自动获取的空字符串,
这个时候后台json解析时就会返回err: `cannot unmarshal string into Go struct field xx of type int`, 但不会阻止其它字段的解析.
```go
type Body {
xxID int `json:"xxId"`
...
}
```
```js
form: {
xxId: ''
}
<input v-model="form.xxId" />
```
比如我用gin来开发REST API时,
```go
err := c.ShouldBindBodyWithJSON(&body)
```
当input没有输入值, 提交的json是空字符串 `{"xxId": ""}`, 一般场景下这类空值`""`或null值, 当逻辑上没有必填要求时, 是可以忽略的.
## 疑问
那我在后台应该怎么处理这类异常. 因为除了这种类型转换异常可能还有其它异常会影响业务逻辑, 所以不能忽略这个`err`
也没法要求前端严格按照参数类型来传递参数值,这样前端要一个字段一个字段来处理类型, 不现实
请问各位现在流行的处理方式是怎么样的?
有疑问加站长微信联系(非本文作者)