Fixed interface type casting in parser.go

Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
pull/6289/head
Vibhav Bobade 6 years ago
parent 27e70c8f1d
commit a1af5736bc

@ -243,12 +243,19 @@ func (t *parser) listItem(list []interface{}, i int) ([]interface{}, error) {
// We have a nested object. Send to t.key // We have a nested object. Send to t.key
inner := map[string]interface{}{} inner := map[string]interface{}{}
if len(list) > i { if len(list) > i {
inner = list[i].(map[string]interface{}) switch list[i].(type) {
case []interface{}:
for _, v := range list[i].([]interface{}) {
inner = v.(map[string]interface{})
}
default:
inner = list[i].(map[string]interface{})
}
} }
// Recurse // Recurse
e := t.key(inner) err := t.key(inner)
return setIndex(list, i, inner), e return setIndex(list, i, inner), err
default: default:
return nil, errors.Errorf("parse error: unexpected token %v", last) return nil, errors.Errorf("parse error: unexpected token %v", last)
} }

Loading…
Cancel
Save