Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
如何在Lift中将JSON JString值转换为普通字符串?_String_Json_Scala_Lift_Lift Json - Fatal编程技术网

如何在Lift中将JSON JString值转换为普通字符串?

如何在Lift中将JSON JString值转换为普通字符串?,string,json,scala,lift,lift-json,String,Json,Scala,Lift,Lift Json,有一个jString:jString值,里面有一个“abc”字符串,我得到“jString(abc)”:string如果我调用jString.toString。如何取而代之的是“abc”:String?要从JValue中提取值,可以使用此处描述的任何方法: 例如: json.extract[String] 您可以使用“render”函数将任何JValue转换为可打印格式。然后,“pretty”或“compact”将其转换为字符串 compact(render(json)) 或 我认为最好的方

有一个
jString:jString
值,里面有一个
“abc”
字符串,我得到
“jString(abc)”:string
如果我调用
jString.toString
。如何取而代之的是
“abc”:String

要从JValue中提取值,可以使用此处描述的任何方法:

例如:

json.extract[String]
您可以使用“render”函数将任何JValue转换为可打印格式。然后,“pretty”或“compact”将其转换为字符串

compact(render(json))


我认为最好的方法是使用match:

val x = ... (whatever, maybe it's a JString)

x match {
  case JString(s) => do something with s
  case _          => oops, something went wrong
}

这是前一段时间提出的问题,但我需要一个简单的单行帮助程序,它可以在表达式的上下文中为我获取字符串,因此我在一个名为get的对象中编写了这个小东西:

  object Get {
    def string(value: JValue): String = {                                                                                                               
      val JString(result) = value                                                                                            
      result                                                                                                                              
    }
  ...
  }

这样我就可以做了,例如,val myString=Get.string(jsonStringValue)

我找到了使用
jString.values:string
的解决方案,但我不确定它是否正确-如果只有
字符串,为什么称它为
values
(不是
),我不想呈现JSON。我想要相反的结果——提取JSON中序列化的对象的属性的字符串值,并且我已经将该字段隔离到一个单独的JString中,它只包含我需要的值。
val x = ... (whatever, maybe it's a JString)

x match {
  case JString(s) => do something with s
  case _          => oops, something went wrong
}
  object Get {
    def string(value: JValue): String = {                                                                                                               
      val JString(result) = value                                                                                            
      result                                                                                                                              
    }
  ...
  }