首页  

play json库简介     所属分类 play 浏览量 714
Play JSON库 基于 jackson
JSON对象和case class 互相转换
JSON数据合法性验证
com.typesafe.play:play-json_2.12:2.9.2

JsValue  trait 所有JSON类型的父类
JsString
JsNumber
JsBoolean
JsObject
JsArray
JsNull

对于基本类型T(例如String, Int, ...) 以及 Seq[T] 已经提供默认的隐式转换
自动将其转换成对应的JSON类型

Json.obj("name" -> JsString("tiger"))
Json.obj("name" -> "tiger")

Json.obj("names" -> JsArray(Seq(JsString("cat"), JsString("dog"))))
Json.obj("names" -> Seq("cat", "dog"))

整数和浮点数 使用 JsNumber 表示


JSON操作 构建一个 JsObject 对象 // 直接构建 val json = Json.obj( "name" -> "tiger", "emails" -> Json.arr("123456@dyyx.com","abc@dyyx.com"), "address" -> Json.obj( "province" -> "zhejiang", "city" -> "hangzhou" ) ) // 从JSON字符串构建 val json = Json.parse(""" { "name": "tiger", "emails": ["123456@dyyx.com","abc@dyyx.com"], "address": { "province" : "zhejiang", "city" : "hangzhou" } } """)
与 case class 隐式转换 需要声明 import play.api.libs.json._ implicit val addressFormat = Json.format[Address] implicit val personFormat = Json.format[Person] // case class -> JSON object val person = Person("tiger", List("123456@qq.com"), Address("zhejiang", "hangzhou")) val json : JsValue = Json.toJson[Person](person) //JSON object -> case class val p1:Person = Json.fromJson[Person](json).get val p2:Person = json.as[Person] val p3:Person = json.asOpt[Person].get
完整代码 https://gitee.com/dyyx/hellocode/blob/master/demo/scala/playjsondemo/src/main/java/hello/JsonDemo.scala

上一篇     下一篇
SBT依赖 % 与 %% 的区别

scala模式匹配中的@

Scala foldLeft foldRight

akka typed actor 实例之hello

akka typed actor 实例之 echo

scala技术栈新人学习指南