我有一个大文本文件,这个文件的每一行都是一个嵌套的String,与此类似:
{"data":"test","field":"test","listObj":[{"data":"testInner1","field":"testInner1"},{"data":"testInner2","field":"testInner2"}],"obj":{"data":"testInner1","field":"testInner1"}}
您可以看到上面的String实际上具有以下结构,但存储为单行并且不可读:
{
"data" : "test",
"field" : "test",
"listObj" : [{
"data" : "testInner1",
"field" : "testInner1"
} , {
"data" : "testInner2",
"field" : "testInner2"
}],
"obj" : {
"data" : "testInner1",
"field" : "testInner1"
}
}
我想将文本文件的每一行转换为Scala中的JSON对象,并且我无法为此文件设计映射器模式,因为每行可能具有不同的结构。
在这种情况下,我使用Play框架中的JSON库创建以下简单代码:
def main(args: Array[String]) {
for(line <- Source.fromFile("test.txt").getLines()) {
val lineStr = line.mkString
val jsonString = Json.toJson(lineStr)
val readableString: String = Json.prettyPrint(jsonString)
println(readableString)
}
}
但&#34; readableString&#34;的输出是这样的:
"{\"data\":\"test\",\"field\":\"test\",\"listObj\":[{\"data\":\"testInner1\",\"field\":\"testInner1\"},{\"data\":\"testInner2\",\"field\":\"testInner2\"}],\"obj\":{\"data\":\"testInner1\",\"field\":\"testInner1\"}}"
以下是我的问题:
以上输出不是我想要的,我期待一个JSON 具有可读结构的对象。有没有办法实现这一目标?
除了将嵌套的String转换为JSON之外,最快的是什么 将非常大的文本文件转换为JSON对象的方法?哪个库 我应该使用吗?
提前致谢!