Мне было трудно создать заголовок для этого вопроса ...
Скажем, у меня есть такие данные:
{"total_results":78,"resources":[{"metadata":{"verified_at":"2018-10-17T21:07:43.935Z","linkages":[{"origin":"ABC","id":"a"},{"origin":"XYZ","id":"b"}]}},{"metadata":{"verified_at":"2018-10-17T21:07:43.935Z","linkages":[{"origin":"ABC","id":"c"},{"origin":"XYZ","id":"d"}]}}]}
Рассмотрим поле resources
. Я хочу вывести массив, который включает id
для каждого элемента массива. Чтобы получить идентификатор, перейдите в поле связей, которое является массивом, и найдите элемент с "origin": "ABC"
. Поле id
в этом элементе является идентификатором, который должен быть возвращен.
Этот фрагмент кода работает, но кажется слишком многословным. Должен быть более простой способ.
_.map(_.filter(_.flatten(_.map(body.resources, 'metadata.linkages')),['origin','ABC']), 'id')