是否可以使用Scala的解析器组合器逐行解析JSON文本文件?
我是Scala的新手。在阅读书籍" Scala编程"时,我对Scala的解析器组合感兴趣 并打算编写一个简单的JSON解析器作为练习。
我打算从文本文件中读取并解析文件内容。通过一点研究,我意识到阅读
将文件的所有内容存入内存(例如Source.fromFile("1.json").getLines.mkString
),然后将该内容提供给方法parseAll
。
所以我的问题是:是否可以逐行读取文本文件,然后以基于行的方式进行解析?
我在网上搜索但无法找到任何线索。
任何提示都表示赞赏。谢谢!
答案 0 :(得分:0)
您可以执行以下操作:
Event
你得到的迭代器是Source.fromFile("1.json").getLines.forEach
,这意味着默认情况下它不会将所有行读入内存。
你调用BufferedLineIterator
的那一刻,你要求迭代器读取所有行并从中创建一个字符串。
您唯一应该记住的是,您需要为多行上的JSON对象做好准备。
mkString
或
{"id": 1, "name": "Joe"}
应该生成相同的对象,但逐行读取示例2有点棘手