溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【總結(jié)】使用Json4s實(shí)現(xiàn)Scala對象轉(zhuǎn)Json

發(fā)布時(shí)間:2020-05-22 19:25:19 來源:網(wǎng)絡(luò) 閱讀:4549 作者:巧克力黒 欄目:大數(shù)據(jù)

object JsonExample extends App {

import org.json4s.JsonDSL._

import org.json4s.jackson.JsonMethods._

//第一部分,官網(wǎng)例子

case class Winner(id: Long, numbers: List[Int])

case class Lotto(id: Long, winningNumbers: List[Int], winners: List[Winner], drawDate: Option[java.util.Date])

val winners = List(Winner(23, List(2, 45, 34, 23, 3, 5)), Winner(54, List(52, 3, 12, 11, 18, 22)))

val lotto = Lotto(5, List(2, 45, 34, 23, 7, 5, 3), winners, None)

val json =

("lotto1" ->

("lotto-id" -> lotto.id) ~

("winning-numbers" -> lotto.winningNumbers) ~

("draw-date" -> lotto.drawDate.map(_.toString)) ~

("winners" ->

lotto.winners.map { w =>

(("winner-id" -> w.id) ~

("numbers" -> w.numbers))}))

println(compact(render(json)))

//第二部分,參照官網(wǎng)例子寫的

case class StatInfo(min: String, max: String, nullCount: Long, notNullCount: Long, maxLength: Int)

case class TableStatInfo(tableName: String, count: Long, statInfo: List[StatInfo])

//  val statInfo = StatInfo("1","2", 10, 12, 202)

val statInfoList = List(StatInfo("1","2", 10, 12, 202), StatInfo("1","2", 10, 12, 202))

val tableStatInfo = new TableStatInfo("biz_hotelorder", 0 , statInfoList)

val json1 =

("tableStatInfo" ->

("tableName" -> tableStatInfo.tableName) ~

("itemCount" -> tableStatInfo.count) ~

("StatInfo" ->

tableStatInfo.statInfo.map { w =>

(("min" -> w.min) ~

("max" -> w.max) ~

("nullCount" -> w.nullCount) ~

("notNullCount" -> w.notNullCount) ~

("maxLength" -> w.maxLength))}))

println(compact(render(json1)))

}



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI