如何在Scala.js中读取资源文件?

时间:2016-10-27 18:31:51

标签: scala.js

假设我在map.csv处于同一级别(或其他一些可访问网络的地方)的index-{dev,opt}.html文件,例如:

key1,value1
key2,value2
...
keyN,valueN

我想读取该CSV文件,最后得到Map[String,String]。我知道如何在Scala中执行此操作,但我如何在Scala.js中执行此操作?

我正在努力不对密钥和值进行硬编码。

1 个答案:

答案 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之类的强类型结构将其发送到客户端。这一切都取决于您的基础设施是什么样的。