Json4s庫
看起來你是新來的Stackoverflow。這裏是開始的例子。
創建SBT項目,並在build.sbt
build.sbt
name := "foobar"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq("org.json4s" %% "json4s-native" % "3.4.2")
Main.scala
在src文件夾
import org.json4s._
import org.json4s.native.JsonMethods._
object Main {
def convert(jsonString: String): String = {
val parsedJson = parse(jsonString)
parsedJson.children.map {
case JObject(list) =>
val map = list.toMap
val JString(citta) = map("Citta")
val JString(genere) = map("GENERE")
val JInt(quantita) = map("Quantita")
List(citta, genere, quantita).map(str => s"'$str'").mkString("[", ",", "]\n")
case _ => List.empty[String]
}.mkString("[", ",", "]")
}
def main(args: Array[String]): Unit = {
println(convert(
"""
| [
| {
| "Quantita": 6,
| "Citta": "BARI",
| "GENERE": "Avventura"
| },
|
| {
| "Quantita": 30,
| "Citta": "BARI",
| "GENERE": "Storia"
| },
| {
| "Quantita": 6,
| "Citta": "MODUGNO",
| "GENERE": "Avventura"
| },
|
| {
| "Quantita": 6,
| "Citta": "MODUGNO",
| "GENERE": "Storia"
| },
| {
| "Quantita": 8,
| "Citta": "MODUGNO",
| "GENERE": "Avventura"
| }]
|
""".stripMargin))
}
}
運行項目做sbt run
並在控制檯上看到輸出。
注意:根據您的要求設置輸出格式,並照顧駱駝情況。
輸出:
[['BARI','Avventura','6']
,['BARI','Storia','30']
,['MODUGNO','Avventura','6']
,['MODUGNO','Storia','6']
,['MODUGNO','Avventura','8']
]
播放的Json
build.sbt
name := "foobar"
version := "1.0"
scalaVersion := "2.11.8"
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies ++= Seq("com.typesafe.play" %% "play-json" % "2.5.4")
Main.scala
import play.api.libs.json._
object Main {
case class Record(quantita: Int, citta: String, genere: String)
object Record {
import play.api.libs.functional.syntax._
implicit val recordReads: Reads[Record] = (
(JsPath \ "Quantita").read[Int] and
(JsPath \ "Citta").read[String] and
(JsPath \ "GENERE").read[String]
)(Record.apply _)
}
def main(args: Array[String]): Unit = {
val parsedJson =
Json.parse(
"""
|[
| {
| "Quantita": 6,
| "Citta": "BARI",
| "GENERE": "Avventura"
| },
|
| {
| "Quantita": 30,
| "Citta": "BARI",
| "GENERE": "Storia"
| },
| {
| "Quantita": 6,
| "Citta": "MODUGNO",
| "GENERE": "Avventura"
| },
|
| {
| "Quantita": 6,
| "Citta": "MODUGNO",
| "GENERE": "Storia"
| },
| {
| "Quantita": 8,
| "Citta": "MODUGNO",
| "GENERE": "Avventura"
| }]
|
""".stripMargin)
parsedJson.validate[List[Record]] match {
case JsSuccess(value, _) =>
value.map { record =>
s"""[${record.citta},${record.genere},${record.quantita}]\n"""
}.mkString("[", ",", "]")
case JsError(_) => println("")
}
}
}
我不知道怎樣才能做到這一點。我需要一些幫助或解決方案 – Mozzer
什麼是JSON庫? – Barry
請提供一個可重現的例子。 –