加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Play2和Scala中使用JSON数组

发布时间:2020-12-16 09:12:16 所属栏目:安全 来源:网络整理
导读:"people": [ { "name": "Jack","age": 15 },{ "name": "Tony","age": 23 },{ "name": "Mike","age": 19 }] 这是我尝试解析的json样本.我想能够对每个人做一个foreach操作,并打印他们的名字和年龄. 我知道如何处理json数组,当它是单个项目或一个特定的编号项
"people": [
 {
   "name": "Jack","age": 15
 },{
   "name": "Tony","age": 23
 },{
   "name": "Mike","age": 19
 }
]

这是我尝试解析的json样本.我想能够对每个人做一个foreach操作,并打印他们的名字和年龄.

我知道如何处理json数组,当它是单个项目或一个特定的编号项目.我不知道如何迭代所有项目.

谁能帮我吗?

解决方法

Play JSON库有很多方法可以实现.主要区别是Scala案例类的使用.

给一个简单的json

val json = Json.parse("""{"people": [ {"name":"Jack","age": 19},{"name": "Tony","age": 26} ] }""")

您可以使用案例类和Json宏来自动解析数据

import play.api.libs.json._

case class People(name: String,age: Int)

implicit val peopleReader = Json.reads[People]
val peoples = (json  "people").as[List[People]]
peoples.foreach(println)

或者没有case类,手动

import play.api.libs.json._
import play.api.libs.functional.syntax._

implicit val personReader: Reads[(String,Int)] = (
  (__  "name").read[String] and 
  (__  "age").read[Int]
).tupled
val peoples = (json  "people").as[List[(String,Int)]]
peoples.foreach(println)

换句话说,检查关于这个主题的非常完整的文档:)
http://www.playframework.com/documentation/2.1.0/ScalaJson

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读