我有一个有趣的json数据,看起来像:
[ {
"internal_network" : [ {
"address" : [ {
"address_id" : 2,
"address" : "172.16.20.1/24"
}, {
"address_id" : 1,
"address" : "172.16.30.30/24"
} ]
} ],
"switch_id" : "0000000000000001"
}, {
"internal_network" : [ {
"address" : [ {
"address_id" : 2,
"address" : "172.16.30.1/24"
}, {
"address_id" : 1,
"address" : "192.168.10.1/24"
}, {
"address_id" : 3,
"address" : "172.16.10.1/24"
} ]
} ],
"switch_id" : "0000000000000002"
} ]
我写了案例类和自定义内容:
case class TheAddress(addr: (Int, String))
implicit val theAddressReads: Reads[TheAddress] = (
(__ \ "address_id").read[Int] and
(__ \ "address").read[String] tupled) map (TheAddress.apply _)
case class Addresses(addr: List[TheAddress])
implicit val addressesReads: Reads[Addresses] =
(__ \ "address").read(list[TheAddress](theAddressReads)) map (Addresses.apply _)
case class TheSwitch(
switch_id: String,
address: List[Addresses] = Nil)
implicit val theSwitchReads: Reads[TheSwitch] = (
(__ \ "switch_id").read[String] and
(__ \ "internal_network").read(list[Addresses](addressesReads)))(TheSwitch)
case class Switches(col: List[TheSwitch])
implicit val switchesReads: Reads[Switches] =
(__ \ "").read(list[TheSwitch](theSwitchReads)) map (Switches.apply _)
当我使用以下方法验证提供的数据时:
val json: JsValue = Json.parse(jsonChunk)
println(json.validate[TheSwitch])
我得到:
JsError(List((/switch_id,List(ValidationError(error.path.missing,WrappedArray()))), (/internal_network,List(ValidationError(error.path.missing,WrappedArray())))))
我可以像这样使用JsPath访问它
val switches: Seq[String] = (json \\ "switch_id").map(_.as[String])
但是我真的不知所措,我在自定义读取方面做错了什么。我已经尝试过放置另一个顶级键和其他组合,但是似乎我缺少了一些关键的东西,因为我是从今天开始的。
非常感谢。
错误告诉您不是/switch_id
数组而是数组。因此,似乎您应该阅读JSON List[Switch]
而不是Switch
假设您Reads
(没有测试它们)是正确的,那么应该可以:
val json: JsValue = Json.parse(jsonChunk)
println(json.validate[List[TheSwitch]])
Threejs提供了一系列用户编辑和播放关键帧动画的API,例如关键帧KeyframeTrack、剪辑AnimationClip、操作AnimationAction、混合器AnimationMixer。 为了让大家更好的理解关键帧动画,本节课不加载外部模型的帧动画数据,使用关键帧KeyframeTrack和剪辑AnimationClip编写一个关键帧动画,然后调用操作AnimationAction
描述 (Description) 它是validate()方法返回的值,如果验证失败或触发invalid事件,则显示验证错误。 语法 (Syntax) model.validationError 例子 (Example) <!DOCTYPE html> <head> <title>Model Example</title> <script src =" https:
我刚刚升级到Play2.4,出于任何原因,我无法加载JDBCMySQL驱动程序。这是我在建的东西。sbt 在刷新(IntelliJ)并运行应用程序后,我仍然收到以下错误 原因:java。lang.ClassNotFoundException:org。mysql。jdbc。驾驶员 我已经搜索过任何潜在的问题,但没有发现任何问题。sbt有什么我不知道的错误吗?
问题内容: Play Framework 2.1中的新ScalaJson功能让我有些迷惑。我想在枚举中写读和写。 这是我的代码: 任何想法 ? 谢谢。 问题答案: 简短答案:使用类似Play Enumeration Utils的工具。 长答案,而不是将“读取” 放入 您的枚举,您可以为“枚举”类型创建可重复使用的读取: 然后,当您想将某些内容解析为枚举时,请为作用域中的特定Enum类型创建一个隐式
嗨,我正在使用Android Studio 3.2.1。我刚刚同步了我的应用程序依赖项,突然出现了下面提到的错误。我已经添加和删除了谷歌依赖项,但没有任何用处。有什么帮助吗?? 未能解决:播放服务“打开文件”
我已经创建了一个非常简单和基本的html5音频播放器,实际上不超过: 但我面临两个问题,这个简单的音频标签在Chrome上可以使用,但在Safari 7上不行;第二个问题是,它不能在我的iPhone iOS7和HTC Android 2.3上使用