AgeofCreations
@AgeofCreations
Python, AsyncIO, AMQP

Как достать из JSON-объекта определенный элемент?

У меня есть строка JSON, возвращённая API Яндекс-метрики. Мне нужно получить из неё только один элемент - значение ключа "totals". На чистом JavaScript версии, если не ошибаюсь, 1.6. (Google App Script)

JSON под спойлером
{
    "query": {
        "ids": [
            55027
        ],
        "dimensions": [
            "ym:s:searchEngine"
        ],
        "metrics": [
            "ym:s:users"
        ],
        "sort": [
            "-ym:s:users"
        ],
        "date1": "2017-09-01",
        "date2": "2017-09-08",
        "filters": "ym:s:startURLPath=='/kanctovary/'",
        "limit": 10000,
        "offset": 1,
        "group": "Week",
        "auto_group_size": "1",
        "quantile": "50",
        "offline_window": "21",
        "attribution": "Last",
        "currency": "RUB"
    },
    "data": [
        {
            "dimensions": [
                {
                    "name": "Google, результаты поиска",
                    "id": "google_search",
                    "favicon": "google.com"
                }
            ],
            "metrics": [
                904
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Яндекс, результаты поиска",
                    "id": "yandex_search",
                    "favicon": "www.yandex.ru"
                }
            ],
            "metrics": [
                229
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Мобильный Яндекс",
                    "id": "yandex_mobile",
                    "favicon": "m.yandex.ru"
                }
            ],
            "metrics": [
                60
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Google: мобильное приложение",
                    "id": "google_mobile_app",
                    "favicon": "google.com"
                }
            ],
            "metrics": [
                54
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Яндекс: мобильное приложение",
                    "id": "yandex_mobile_app",
                    "favicon": "www.yandex.ru"
                }
            ],
            "metrics": [
                28
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Mail.ru, результаты поиска",
                    "id": "mail_search",
                    "favicon": "go.mail.ru"
                }
            ],
            "metrics": [
                11
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Yahoo, результаты поиска",
                    "id": "yahoo_search",
                    "favicon": "yahoo.com"
                }
            ],
            "metrics": [
                5
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Rambler, результаты поиска",
                    "id": "rambler_search",
                    "favicon": "rambler.ru"
                }
            ],
            "metrics": [
                2
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Bing, результаты поиска",
                    "id": "bing_search",
                    "favicon": "bing.com"
                }
            ],
            "metrics": [
                2
            ]
        },
        {
            "dimensions": [
                {
                    "name": "Zapmeta",
                    "id": "zapmeta",
                    "favicon": "zapmeta.ru"
                }
            ],
            "metrics": [
                1
            ]
        },
        {
            "dimensions": [
                {
                    "name": "search.gmx.net",
                    "id": "search_gmx_net",
                    "favicon": "search.gmx.net"
                }
            ],
            "metrics": [
                1
            ]
        }
    ],
    "total_rows": 11,
    "total_rows_rounded": false,
    "sampled": false,
    "sample_share": 1,
    "sample_size": 1691172,
    "sample_space": 1691172,
    "data_lag": 117,
    "totals": [
        1295
    ],
    "min": [
        1
    ],
    "max": [
        904
    ]
}


Пробовал через метод .find, но, видимо, не совсем понимаю как он работает (в JS полный ноль).
Также пробовал при помощи параметра retriever json.parse, но среда не понимает и требует закрыть скобки с параметрами до {
  • Вопрос задан
  • 1464 просмотра
Решения вопроса 1
@Hedy
Если у вас ответ приходит именно в JSON, то у вас уже есть объект и можно просто:
let totals = response.data.totals[0]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы