Scala 播放json:将json值解析为不带引号的字符串
我有一个json对象Scala 播放json:将json值解析为不带引号的字符串,scala,play-json,Scala,Play Json,我有一个json对象 { "company":"77160" } 我用play.api.libs.json在Scala中解析它,如下所示: cols = Json.parse(line).as[JsObject] val company = s"${cols("company")}".toString 然而,返回的字符串有双引号(即“77160”) 有什么好处?如何获得一个正常的字符串((即“77160”)),而不需要自己对其进行重新分类(例如使用替换函数)。您必须在cols(“公司
{
"company":"77160"
}
我用play.api.libs.json在Scala中解析它,如下所示:
cols = Json.parse(line).as[JsObject]
val company = s"${cols("company")}".toString
然而,返回的字符串有双引号(即“77160”)
有什么好处?如何获得一个正常的字符串((即“77160”)),而不需要自己对其进行重新分类(例如使用替换函数)。您必须在
cols(“公司”)
上调用.as[string]
。看
像这样:
cols = Json.parse(line).as[JsObject]
val company = cols("company").as[String]
如果您想知道引擎盖下发生了什么,那么
as
方法的类型是JsValue.as[T](隐式fjs:Reads[T]):T
,它使用隐式找到T
的隐式转换器。因为我们在这里使用作为[String]
,它将搜索适合该类型的隐式转换器,并且因为play已经在其中定义了它,它将使用该转换器。好的,这一个有效。as关键字是否使用反射。因为我还担心速度,而这一个可能有点慢。验证[T]而不是像[T]那样验证[T],以获得错误详细信息