我想将一个简单的JSON字符串转换为{"Name":"abc", "age":10}相应的JSON对象(不是自定义的Scala对象,如"Person").Scala是否支持将String转换为JSON对象的任何内置方法?
我不会有任何复杂的JSON操作.我只需要将String转换为JSON对象.最简单的方法是什么?我是Scala的新手,所以如果这个问题听起来很基本,我会道歉.
谢谢.
Dem*_*ots 22
注意:从技术上讲,不再有核心Scala"本机"方式来解析JSON.您应该使用外部支持的库,如Spray JSON或Play JSON.
从Scala 2.11开始,解析器 - 组合器库不再包含在核心语言jar中,需要单独添加到项目中.此外,JSON解析器已在社区支持的解析器 - 组合器库版本中弃用.我不建议使用这个库.
如果您选择,您仍然可以将它添加到您的项目中,方法是将以下内容添加到build.sbt中:
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4"
您可以在https://github.com/scala/scala-parser-combinators找到该库的源代码.
由于您特别询问了Scala用于JSON解析的本机工具 - 您正在寻找的包是scala.utils.parsing.json.像下面这样的东西应该工作:
import scala.util.parsing.json._
val parsed = JSON.parseFull("""{"Name":"abc", "age":10}""")
Run Code Online (Sandbox Code Playgroud)
parsed 将承担价值: Some(Map(Name -> abc, age -> 10.0))
您可能希望使用类似Spray JSON的库.它提供了许多易于使用的功能,可以转换为JSON和从JSON转换.如果您决定使用Spray JSON,您可以这样做:
import spray.json._
// some code here
val json = "your json string here".parseJson
Run Code Online (Sandbox Code Playgroud)
您也可以从play框架中使用Json Library ,但也可以用作独立的lib.这个库基于良好但被遗弃的Jerkson项目,这是一个Scala包装器,围绕基于Java的超快JSON库Jackson.它具有非常丰富和良好的文档工具集,可用于使用JSON - transofrmers,验证器等.
import play.api.libs.json._
val json: JsValue = Json.parse("""{"a":1}""")
Run Code Online (Sandbox Code Playgroud)
要在没有播放的情况下使用此lib,只需使用string将其安装在build.sbt中
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.3.0"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49778 次 |
| 最近记录: |