Я только что начал работать над scala. У меня есть следующий массив json:
[
{
"id": "1",
"formatType": "text",
"value": "bgyufcie huis huids hufhsduhfsl hd"
},
{
"id": "2",
"formatType": "text size",
"value": 12
},
{
"id": "3",
"formatType": "text alignment",
"value" : "right"
}
]
Я пытаюсь получить json из этого массива на основе идентификатора. Например, если id равен 2, я хочу получить следующие
{
"id": "2",
"formatType": "text size",
"value": 12
}
и так далее для других идентификаторов. Я написал код, который сравнивает идентификатор и возвращает мне json, который выглядит следующим образом.
val getid = jsonString.parseJson match {
case JsArray(elements) => elements.map(x => if(x.asJsObject().getFields("Id")(0).toString().replace("\"", "") == key) x)
}
Этот код отлично работает, когда в массиве json у меня только один json. Но когда у меня есть несколько json с идентификаторами, как показано выше, этот код сравнивает только последнюю запись. То есть в этом случае сравниваются только данные с идентификатором 3. Это не сравнение с идентификаторами 1 и 2, из-за чего я не могу получить желаемые результаты. Я пробовал использовать для каждого здесь, но у меня это не сработало. для каждого печатает полные данные в символах. Как я могу проверить все записи в моем массиве json, сопоставить идентификатор и вернуть его?