假设我在map.csv
处于同一级别(或其他一些可访问网络的地方)的index-{dev,opt}.html
文件,例如:
key1,value1
key2,value2
...
keyN,valueN
我想读取该CSV文件,最后得到Map[String,String]
。我知道如何在Scala中执行此操作,但我如何在Scala.js中执行此操作?
我正在努力不对密钥和值进行硬编码。
答案 0 :(得分:2)
解析与传统Scala中的解析基本相同 - 毕竟它是相同的语言。
所以真正的问题是抓取文件。那里没有一个通用的解决方案;例如,它取决于您用作Web服务器的内容。我自己的系统是基于游戏的,the cognate code看起来像这样:
override def postInit() = {
val ajaxCall:PlayAjax = controllers.Assets.versioned("messages/default/clientStrings")
ajaxCall.callAjax().map { messageText =>
val hoconTable = HoconParse(messageText)
_messages = Some(MessagesImpl("", hoconTable))
_readyPromise.complete(Success())
}
}
我的(相当复杂的)设置特有的细节,但基本原理很简单:发出一个AJAX调用来将文件加载为文本,然后解析该文件。
还有其他选项 - 例如,加载和解析文件服务器端,并使用类似Autowire之类的强类型结构将其发送到客户端。这一切都取决于您的基础设施是什么样的。