Разбор файла JSON в Scala - PullRequest
       19

Разбор файла JSON в Scala

0 голосов
/ 19 декабря 2018

У меня есть файл JSOn:

JsonString="""{"schema":{"type":"struct","name":"emp_table","fields":[{"field":"emp_id","type":"string"},{"field":"emp_name","type":"String"},{"field":"city","type":"string"},{"field":"emp_sal","type":"string"},{"field":"manager_name","type":"string"},]},"payload":{"emp_id":"1","emp_name":"abc","city":"NY","emp_sal":"100000","manager_name":"xyz"}}"""

Я хочу проанализировать его и получить значения в Array(1,abc,NY,100000,xyz)

Я использовал Lift Json API в Scala:

case class Emp(val emp_id: String, val emp_name: String, val city: String, val emp_sal: String, val manager_name: String)

val stocks = ArrayBuffer[Emp]()
val json = JsonParser.parse(EmpString)

val elements = (json \\ "payload").children
for ( acct <- elements ) {
val stock = acct.extract[Emp]
stocks += stock
}
stocks.toArray
}

но это дает мне как

Array[Emp] = Array(Emp(1,abc,NY,100000,xyz))

Может кто-нибудь подсказать мне разобрать этот файл Json, возможно, используя любой другой API, например GSON или Джексон?

1 Ответ

0 голосов
/ 19 декабря 2018

Если у вас есть Array[Emp], и вы хотите Array[String], вы всегда можете просто flatMap() это.

empArr.flatMap(_.productIterator).map(_.toString)
//res0: Array[String] = Array(1, abc, NY, 100000, xyz)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...