问题描述
circe
是否提供任何函数来检查 io.circe.Json
对象是否为空?
Json 文档没有报告任何关于它的内容,而 JsonObject 文档讨论了 isEmpty 函数,但我证实了这一点
{}.asJson.asObject.isEmpty // false
所以它不像我预期的那样工作。
解决方法
它不会以您预期的方式工作,因为如果底层 JSON 是对象,Json.asObject
会返回 Some
,因为除此之外它还可以是 String
、{{1 }}、Number
或 Null
,因此 Array
(仅出于示例的原因并不完全正确) - 返回 "{}".asObject
并且您收到 Some(JsonObject())
因为 {{1 }}。
你想要的是:
false
斯卡斯蒂:https://scastie.scala-lang.org/GgHGChNoRlGq0HxmSkf76Q
,我只是忘记了,因为 asObject
返回 Option[JsonObject]
,所以 isEmpty
只是检查它是 Some
?
.asObject.map(_.isEmpty).getOrElse(true)
作品