if k == "." {
vs = []any{data}
} else {
- m := data.(map[string]any)
+ var m map[string]any
+ m, ok = data.(map[string]any)
+ if !ok {
+ return &SchemaErr{BaseErr: BaseErr{
+ SchemaName: schemaName,
+ CmdIdx: cmdIdx,
+ CmdName: cmdName,
+ Msg: "non map",
+ Data: data,
+ }}
+ }
v, exists := m[k]
if !exists {
vs = nil
}
case uint64:
taken = strconv.FormatUint(k, 10)
- l := data.([]any)
+ var l []any
+ l, ok = data.([]any)
+ if !ok {
+ return &SchemaErr{BaseErr: BaseErr{
+ SchemaName: schemaName,
+ CmdIdx: cmdIdx,
+ CmdName: cmdName,
+ Msg: "non list",
+ Data: data,
+ }}
+ }
if int(k) < len(l) {
vs = []any{l[k]}
}