Источник данных журнала выглядит так:
{ "LogtypeA": { "содержание": "listen_logs": [{ "useful_key1": знач1, "useful_key2": знач2}, { "useful_key1": знач1}]}}
Тогда я использую simplejson для их анализа. Значение listen_logs - это фрагмент, который содержит хотя бы одну карту.
Код:
for _, v := range js.Get("LogTypeA").Get("content").Get("listen_logs").MustArray() {
_obj := reflect.ValueOf(v)
fmt.Println(_obj.Kind())
}
Если я заменим MustArray()
на Array()
, он сообщит о неправильных объявлениях переменных и констант.
Используя модуль отражения, я обнаружу, что _obj.Kind()
- это карта, но я не могу использовать какой-либо метод индексации для получения значений из v
, например:
_val1 := v["useful_key1"]
или
for i, v := range v {...}
Поскольку тип interface{}
не поддерживает индексирование.
Итак, как мне извлечь эти полезные ключи X из этих журналов?