先谢谢帮忙看帖的大佬!
日志:
// 需要解析的 Jason 串:
request info:{"serialno":"10001","command":"UserQueryByNATIP","natip":"20.1.18.97","userport":}
// 解析报错,对应下面代码段里面的 logger.Error(logserialno, "%s Json UnmarshalError:
QueryByNATIP::reqparse Json UnmarshalError: invalid character '}' looking for beginning of value
代码:
func (requestpkt *QueryByNATIP) reqparse(logserialno string, packetbuf []byte) error {
funcName := "QueryByNATIP::reqparse"
logger.Trace(logserialno, "%s Begin", funcName)
err := json.Unmarshal(packetbuf, &requestpkt)
if err != nil {
logger.Error(logserialno, "%s Json UnmarshalError: %s", funcName, err.Error())
return err
}
1
p2pCoder 2018-03-22 11:08:56 +08:00
json 格式有误,对于 key "userport" 没有 value
|
2
jimy1 OP 谢谢 p2pCoder 帮忙
如果这个参数可以传空值,怎么样能避免这个报错呢? 下面的是 QueryByNATIP 格式定义,如果键"userport"对应的值可以为空, 我试试把 int 改为 string 再判断是否为 0, // request packet struct for query by natip and port type QueryByNATIP struct { Serialno string `json:"serialno"` Command string `json:"command"` Natip string `json:"natip"` Userport int `json:"userport"` } |