Расшифровать вложенный массив с помощью оптики - PullRequest
2 голосов
/ 25 октября 2019

У меня есть JSON вот так:

  "data": {
    "project": {
      "activityChildren": [
        {
          "id": 2,
          "parents": [
            {
              "id": 1
            }
          ]
        },

      ]
    }
  }

Я бы хотел расшифровать это до List[(Long, List[Long])] с помощью оптической системы. Я дошел до:

  val activityParents: Map[Long, List[Long]] = root.data.activityChildren.each.json
      .getAll(json)
      .flatMap { activity =>
        root.id.long.getOption(activity).map(_ -> root.parents.each.long.getAll(activity))
      }
      .toMap

Интересно, можно ли для этого определить одну линзу, которая просто превращает JSON в нужную карту без явного отображения промежуточного массива. Если да, то как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...