diff --git a/protocol/json/client_notification.go b/protocol/json/client_notification.go index d36434a..0ed8575 100644 --- a/protocol/json/client_notification.go +++ b/protocol/json/client_notification.go @@ -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 }