diff --git a/data_navigator.go b/data_navigator.go index 9806fc62..1f1acacc 100644 --- a/data_navigator.go +++ b/data_navigator.go @@ -33,10 +33,10 @@ func recurse(value interface{}, head string, tail []string) interface{} { log.Fatalf("Error accessing array: %v", err) } return readArray(value.([]interface{}), index, tail) - case nil: - return nil - default: + case map[interface{}]interface{}: return readMap(value.(map[interface{}]interface{}), head, tail) + default: + return nil } } diff --git a/data_navigator_test.go b/data_navigator_test.go index a7f12a38..4f4de210 100644 --- a/data_navigator_test.go +++ b/data_navigator_test.go @@ -44,6 +44,10 @@ func TestReadMap_key_doesnt_exist(t *testing.T) { assertResult(t, nil, readMap(parsedData, "b.x.f", []string{"c"})) } +func TestReadMap_recurse_against_string(t *testing.T) { + assertResult(t, nil, readMap(parsedData, "a", []string{"b"})) +} + func TestReadMap_with_array(t *testing.T) { assertResult(t, 4, readMap(parsedData, "b", []string{"d", "1"})) }