С уважением создания JSON:
Сначала необходимо определить класс дела:
case class SClass(S: string)
case class NClass(N: string)
case class MClass(Score: NClass, TopicID: SClass)
Тогда:
implicit val mclassFormat = jsonFormat2(MClass)
implicit val nclassFormat = jsonFormat(NClass)
implicit val sclassFormat = jsonFormat(SClass)
// serialize the json (hardcoded values)
val mClass = MClass(NClass(12.toString(), SClass("rob"))
val mClassJsonString = mClass.toJson.prettyPrint
О разборе вашего ввода:
val input = "12 rob 13 bla"
val a = input.split(" ").zipWithIndex.collect{case(v,i) if (i % 2 == 0) =>
(v,i)}.map(_._1)
val b = input.split(" ").zipWithIndex.collect{case(v,i) if (i % 2 != 0) =>
(v,i)}.map(_._1)
val result = a.zip(b) // [(12,rob),(13,bla)]
теперь вы можете просмотреть свой результат следующим образом:
result.foreach{case (x,y) =>
val mClass = MClass(NClass(x.toString(), SClass(y))
val mClassJsonString = mClass.toJson.prettyPrint
}