ing
This commit is contained in:
parent
5298f21b68
commit
efea9e8ca6
|
@ -2,10 +2,9 @@ package json
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"reflect"
|
||||
|
||||
"git.loafle.net/commons_go/rpc/codec"
|
||||
cur "git.loafle.net/commons_go/util/reflect"
|
||||
cuej "git.loafle.net/commons_go/util/encoding/json"
|
||||
)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -34,8 +33,7 @@ func (cnc *ClientNotificationCodec) ReadParams(args []interface{}) error {
|
|||
if cnc.err == nil && cnc.noti.Params != nil {
|
||||
// Note: if scr.request.Params is nil it's not an error, it's an optional member.
|
||||
// JSON params structured object. Unmarshal to the args object.
|
||||
var values []string
|
||||
if err := json.Unmarshal(*cnc.noti.Params, &values); err != nil {
|
||||
if err := cuej.SetValueWithJSONStringArray(*cnc.noti.Params, args); nil != err {
|
||||
cnc.err = &Error{
|
||||
Code: E_INVALID_REQ,
|
||||
Message: err.Error(),
|
||||
|
@ -43,25 +41,7 @@ func (cnc *ClientNotificationCodec) ReadParams(args []interface{}) error {
|
|||
}
|
||||
return cnc.err
|
||||
}
|
||||
|
||||
for indexI := 0; indexI < len(args); indexI++ {
|
||||
value := values[indexI]
|
||||
arg := args[indexI]
|
||||
|
||||
if cur.IsTypeKind(reflect.TypeOf(arg), reflect.String, true) {
|
||||
arg = arg.(*string)
|
||||
arg = &value
|
||||
} else {
|
||||
if err := json.Unmarshal([]byte(value), &arg); err != nil {
|
||||
cnc.err = &Error{
|
||||
Code: E_INVALID_REQ,
|
||||
Message: err.Error(),
|
||||
Data: cnc.noti.Params,
|
||||
}
|
||||
return cnc.err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
return cnc.err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user