Я работаю над приложением scala. Я новичок в этом, поэтому пробую кое-что. У меня есть URL-адрес, и я получаю его ответ из приведенного ниже кода
val results = scala.io.Source.fromURL(url).mkString
Это даст результат в следующем формате.
[
{
"id": "1",
"formatType": "text"
"value": [
{
"attributes":[{
"name": "David"
}],
"Time": "2020-07-31T10:30:30"
}
],
},
{
"id": "2",
"formatType": "text"
"value": [
{
"attributes":[{
"name": "Raj"
}],
"Time": "2020-07-31T10:30:30"
}
]
},
{
"id": "3",
"formatType": "text"
"value": [
{
"attributes":[{
"name": "jhonny"
}],
"Time": "2020-07-31T10:30:30"
}
]
}
]
Теперь я хочу извлечь полный json, когда Id соответствует. Предположим, когда я получаю идентификатор как 2, я хочу получить только
{
"id": "2",
"formatType": "text"
"value": [
{
"attributes":[{
"name": "David"
}],
"Time": "2020-07-31T10:30:30"
}
]
}
Если идентификатор равен 3, то я хочу получить только 3-й. Для этого я попробовал следующий код
def parseJson(jsonString : String) : Review = {
val jsonResp = Json.parse(jsonString)
val id = (jsonResp \\ "id")(0).toString()
val formatType = (jsonResp \\ "formatType")(0).toString()
val value = (jsonResp \\ "value")(0).toString()
Review(id, formatType, value)
if (Review.id == "1")
Review
}
Моя модель выглядит следующим образом
case class Review(
id: String,
formatType: FormatType,
value: Seq[Values]
)
теперь в Review(id, formatType, value)
, когда я пытаюсь поместить formatType и value в Review, intellij показывает ошибка как formatType, так и значения соответственно
for formatType error is = Type mismatch, expected FormatType.FormatType,actual JsValue
for value error is = Type mismatch, expected Seq[Values],actual Seq[JsValue]
Поскольку я новичок в scala, не знаю, как ее решить. Как я могу указать правильные типы в моем коде. Пожалуйста, предложите. Или есть лучший способ получить json на основе идентификатора, тогда тоже предложите это.