У меня есть JSON, и я анализирую JSON для приведенных ниже классов. Я использую Play JSON для разбора. Ниже приведены мои классы дел
case class Result(id: String, account : Option[Seq[Account],data: Option[Seq[Data]])
case class Account(accountId: Option[String] = None)
case class Data(primaryId: Option[String] = None,
accountId: Option[String] = None)
Из класса дел данных мне нужен весь primaryId как Seq [String], который сопоставляет accountId класса дел данных с accountId класса дел Account.
Ниже приведен фрагмент кода, который я пробовал. Я попробовал сделать это двумя способами
Первый способ
primaryIds = data.map(cd =>
for{
c <- cd
if c.relatedAccountId == account.accountId
}yield c.primaryId.get)))
Второй способ
primaryIds = data.map(_.collect {
case s if s.relatedAccountId.equals(account.accountId) & s.primaryId.isDefined => s.primaryId.get
Вот мои вопросы
Это правильно использоватьs.primaryId.get. Что делать, если s.primaryId - Нет? И None.get выдаст исключение. Есть ли лучший способ справиться с этим. Пожалуйста, дайте мне знать