Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
使用Play解析Scala(2.10.1)中的JSON文件_Json_Scala_Parsing_Sbt - Fatal编程技术网

使用Play解析Scala(2.10.1)中的JSON文件

使用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 = "

我是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 = "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))