使用Play解析Scala(2.10.1)中的JSON文件
我是scala的新手,我想在这里做的就是用scala简单地解析一个JSON文件并打印出来。我在编译时遇到了一个无法解决的错误。提前感谢您在这方面的帮助。PFB scala代码、SBT文件、JSON文件和错误: json\u示例.scala使用Play解析Scala(2.10.1)中的JSON文件,json,scala,parsing,sbt,Json,Scala,Parsing,Sbt,我是scala的新手,我想在这里做的就是用scala简单地解析一个JSON文件并打印出来。我在编译时遇到了一个无法解决的错误。提前感谢您在这方面的帮助。PFB scala代码、SBT文件、JSON文件和错误: json\u示例.scala import scala.io.Source import play.api.libs.json._ import play.api.libs.json._ object Test extends App { val line :String = "
import scala.io.Source
import play.api.libs.json._
import play.api.libs.json._
object Test extends App {
val line :String = "Foo";
val filename = "users.json"
for (line <- Source.fromFile(filename).getLines().mkString) {
println(line);
val json: JsValue = Json.parse(line);
}
}
SBT文件(simple.SBT)
错误
[info] Set current project to JSON_GRAPHX (in build file:/F:/Graphx_app/JSON_GRAPHX/)
[info] Compiling 1 Scala source to F:\Graphx_app\JSON_GRAPHX\target\scala-2.10\classes...
[error] F:\Graphx_app\JSON_GRAPHX\json_example.scala:15: overloaded method value parse with alternatives:
[error] (input: Array[Byte])play.api.libs.json.JsValue <and>
[error] (input: String)play.api.libs.json.JsValue
[error] cannot be applied to (Char)
[error] val json: JsValue = Json.parse(line);
[error] ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 4 s, completed Aug 18, 2016 8:51:22 PM
[info]将当前项目设置为JSON\u GRAPHX(在构建文件中:/F:/GRAPHX\u app/JSON\u GRAPHX/)
[信息]正在将1个Scala源代码编译为F:\Graphx\u app\JSON\u Graphx\target\Scala-2.10\classes。。。
[错误]F:\Graphx\u app\JSON\u Graphx\JSON\u示例。scala:15:重载方法值解析,并使用替代项:
[错误](输入:数组[字节])play.api.libs.json.JsValue
[错误](输入:字符串)play.api.libs.json.JsValue
[错误]无法应用于(字符)
[error]val-json:JsValue=json.parse(第行);
[错误]^
[错误]发现一个错误
[错误](编译:编译增量)编译失败
[错误]总时间:4秒,已完成2016年8月18日晚上8:51:22
要构建JSON对象,可以在mkString
返回的String
中直接调用parse
方法。比如:
val json = Json.parse(Source.fromFile(filename).getLines().mkString)
通过这样做:
for (line <- Source.fromFile(filename).getLines().mkString)
也可以以可读格式打印:
println(Json.prettyPrint(son))
这是一个完美的解决方案。想知道为什么这不起作用。非常感谢@virsox的帮助。很抱歉延迟回复。
for (line <- Source.fromFile(filename).getLines().mkString)
println(Json.stringify(json))
println(Json.prettyPrint(son))