Извлечение аккуратных данных из простого JSON тривиально с пакетом tidyjson
(https://cran.r-project.org/web/packages/tidyjson/vignettes/introduction-to-tidyjson.html)
Мне не удалось применить этот лог c в сложную вложенную JSON структуру. Подобный вопрос, такой как этот ( как вы извлекаете данные из вложенных json данных в R ), слишком конкретен c, поэтому я не могу экстраполировать его на другие случаи.
Эта структура может дать более общий случай (см. Рабочие воспроизводимые примеры здесь: 1.4 Примеры запросов: https://www.ree.es/en/apidatos)
{
"data": {
"type": "WIDGET TYPE",
"id": "WIDGET_ID",
"attributes": {
"title": "WIDGET NAME",
"last-update": "2019-02-01T08:26:34.000+01:00",
"description": "WIDGET DESCRIPTION",
},
"meta": {
"cache-control": {
"cache": "HIT",
"expireAt": "2019-03-01T17:18:22"
}
}
},
"included": [
{
"type": "INDICATOR_1 TYPE",
"id": "INDICADOR_1_ID",
"groupId": null,
"attributes": {
"title": "INDICADOR_1 NAME",
"description": "INDICADOR_1 DESCRIPTION",
"color": "#2fa688",
"type": "INDICADOR_1 TYPE",
"magnitude": "INDICADOR_1 MAGNITUDE",
"composite": false,
"last-update": "2019-02-19T08:26:34.000+01:00",
"values": [
{
"value": 12345,
"percentage": "VALUE BETWEEN 0 AND 1",
"datetime": "2019-02-04T20:44:00.000+01:00"
}
]
},
{
"type": "INDICATOR_2 TYPE",
"id": "INDICADOR_1_ID",
"groupId": null,
"attributes": {
…
}
}
]
}
}
Первый уровень имеет объект "data"
и массив "included"
В массиве "included"
имеется один объект для каждого индикатора
В каждом из этих объекты есть объект "attributes"
с массивом "values"
, в котором находятся окончательные данные: "value"
, "percentage"
и "datetime"
Цель состоит в том, чтобы извлечь данные в аккуратный фрейм данных со столбцами "type"
, "title"
, "value"
, "percentage"
и "datetime"