1.Input是包含多条记录的JSON文件。例如:
[
{"user": "user1", "page": 1, "field": "some"},
{"user": "user2", "page": 2, "field": "some2"},
...
]
2.我需要将文件中的每条记录作为Document加载到MongoDB集合中。 使用casbah与mongo交互,插入数据可能如下所示:
def saveCollection(inputListOfDbObjects: List[DBObject]) = {
val xs = inputListOfDbObjects
xs foreach (obj => {
Collection.save(obj)
})
问题:在输出中解析JSON以获取List [DBObject]的正确方法(使用scala)是什么?
感谢任何帮助。
答案 0 :(得分:0)
您可以在Scala中使用解析器组合器库。
以下是我发现的一些针对JSON的代码:http://booksites.artima.com/programming_in_scala_2ed/examples/html/ch33.html#sec4
步骤1.创建一个名为JSON的类,其中包含您的解析器规则:
import java.io.FileReader
object ParseJSON extends JSON {
def main(args: Array[String]) {
val reader = new FileReader(args(0))
println(parseAll(value, reader))
}
}
步骤2.在主函数中,读入JSON文件,将文件内容传递给解析器。
$ awk -F'|' '{sub(/^[^~]*~/, "", $4); sub(/\^.*/, "", $4)} 1' OFS='|' file
aaa|bbb|ccc|eee|hhh|iii
111|222|333|555|888|999
AAA|BBB|CCC||EEE|FFF