diff --git a/pkg/services/store/kind/dashboard/dashboard.go b/pkg/services/store/kind/dashboard/dashboard.go index 76a62c506df..3229acbe80d 100644 --- a/pkg/services/store/kind/dashboard/dashboard.go +++ b/pkg/services/store/kind/dashboard/dashboard.go @@ -211,15 +211,27 @@ func readDashboardIter(iter *jsoniter.Iterator, lookup DatasourceLookup) (*Dashb } case "annotations": - for sub := iter.ReadObject(); sub != ""; sub = iter.ReadObject() { - if sub == "list" { - for iter.ReadArray() { - v := iter.Read() - logf("[dash.anno] %v\n", v) + switch iter.WhatIsNext() { + case jsoniter.ArrayValue: + // dashboards v2 is an array + for iter.ReadArray() { + v := iter.Read() + logf("[dash.anno] %v\n", v) + } + case jsoniter.ObjectValue: + // dashboards v0/v1 are an object + for sub := iter.ReadObject(); sub != ""; sub = iter.ReadObject() { + if sub == "list" { + for iter.ReadArray() { + v := iter.Read() + logf("[dash.anno] %v\n", v) + } + } else { + iter.Skip() } - } else { - iter.Skip() } + default: + iter.Skip() } case "templating":