如何在Scala与circe中检测Json是否为字符串字面量?
Circe中检测Json是否为字符串字面量的方法
- 调用内置
isString方法:circe的Json类自带类型判断方法,直接调用即可快速判断是否为字符串字面量
val isXString = x.isString // 返回true val isYString = y.isString // 返回false
- 模式匹配识别类型:利用circe的ADT设计,通过模式匹配精准匹配字符串类型的Json值,还能同时提取字符串内容
def isJsonString(json: Json): Boolean = json match { case Json.Str(_) => true case _ => false } // 调用示例 isJsonString(x) // true isJsonString(y) // false
- 尝试解码验证:如果需要同时验证并获取字符串内容,可以用
as[String]方法,通过返回的Either结果判断是否为有效字符串
val isXString = x.as[String].isRight // true val isYString = y.as[String].isRight // false
内容的提问来源于stack exchange,提问作者outlaw
相关产品推荐
相关产品推荐

