Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 播放json:将json值解析为不带引号的字符串_Scala_Play Json - Fatal编程技术网

Scala 播放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(“公司

我有一个json对象

{
    "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],以获得错误详细信息