Я работаю над большим проектом, в котором мы потребляем большие вложенные структуры JSON из API.Это проект React / Redux, и разные компоненты нуждаются в разных данных, поэтому в каждом селекторе я копаюсь глубоко в JSON и извлекаю то, что мне нужно, используя Javascript, а затем формирую новые объекты для обратной передачи.
Работает нормально, но кажется неэффективным, особенно если есть изменения API.Мне интересно, есть ли инструмент, который мог бы мне помочь: с помощью которого я мог бы написать «схемы» или «шаблоны», которые бы выделяли элементы, которые я хотел извлечь из моего JSON, и возвращали объект, который состоял бы только из того, что я хотел (а также обрабатывает ссылки на отсутствующие данные изящно, то есть с ошибкой «не может получить элемент x из неопределенного»).
Например, если мой API JSON выглядит так (упрощенно, конечно):
{
"name": "Home",
"published": true,
"draft": false,
"blocks": [
{
"something": "yes",
"somethingElse": "no",
"sub_blocks":
[
{"x": "y"},
{"z": "a"}
]
},
{
"something": "maybe",
"somethingElse": "so",
"sub_blocks":
[
{"x": "1"},
{"z": "2"}
]
}
]
}
Я бы получил что-то вроде
{
"name": "Home",
"blocks": [
{
"somethingElse": "no",
"sub_blocks":
[
{"z": "a"}
]
},
{
"somethingElse": "so",
"sub_blocks":
[
{"z": "2"}
]
}
]
}
Я подумал о Normalizr, которыйЯ еще не знаю, но это больше похоже на конверсию, чем на извлечение, и, таким образом, это действительно может не сильно мне помочь.Есть ли способ использовать Normalizr, чтобы делать то, что я хочу?Есть ли инструмент NPM, который может делать именно то, что мне нужно?Спасибо за любые идеи!