|
|
@ -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 {
|
|
|
|
|
|
|
|
switch list[i].(type) {
|
|
|
|
|
|
|
|
case []interface{}:
|
|
|
|
|
|
|
|
for _, v := range list[i].([]interface{}) {
|
|
|
|
|
|
|
|
inner = v.(map[string]interface{})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
default:
|
|
|
|
inner = list[i].(map[string]interface{})
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|