【总结】使用Json4s实现Scala对象转Json 翻译巧克力黒2017-08-03 19:05:15评论(0)-阿里云开发者社区

开发者社区> 开发与运维> 正文

【总结】使用Json4s实现Scala对象转Json 翻译巧克力黒2017-08-03 19:05:15评论(0)

简介:

object JsonExample extends App {

import org.json4s.JsonDSL._

import org.json4s.jackson.JsonMethods._

//第一部分,官网例子

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)))

//第二部分,参照官网例子写的

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)))

}

1
<br data-filtered="filtered">





     本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1953406,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章