【问题标题】:How to use local JSON assets to simulate API in Scala.js如何使用本地 JSON 资产在 Scala.js 中模拟 API
【发布时间】:2018-04-18 23:49:15
【问题描述】:

我是 Scala 和 Scala.js 的新手,我想尝试处理 JSON 数据。我想通过将本地 JSON 文件的内容返回到我的 Scala.js 项目、解析它并使用数据来模拟服务器响应。最好的方法是什么?我应该将这些文件放在我的项目树中的什么位置,以及如何获取它们的内容?

假设我有一个名为 myJSON.json 的文件,其中包含类似

[
  {
    "ress": "AR",
    "lastDate": "2017-10-27 09:19:18"
  },
  {
    "ress": "JIM",
    "lastDate": "2017-10-27 06:57:15"
  },
  {
    "ress": "JOE",
    "lastDate": "2017-09-29 11:57:39"
  }
]

我可以将此文件放置在我的项目中的某个位置,以便我可以读取此文件,然后解析其内容以以某种方式使用它(可以显示在浏览器中,登录到控制台等...)?我想我可以使用诸如scala-js 之类的工具或类似的工具进行解析,但首先访问文件内容是我试图弄清楚的

请注意,我使用的是 scala-js。

提前致谢!

【问题讨论】:

  • 你有什么代码?您需要向我们展示一些代码,以便我们为您提供帮助。
  • @wheaties 我添加了更多细节,但我现在没有更多要展示的内容。真的只是开始并试图弄清楚如何做一些(我)基本的事情。
  • 请注意,这实际上与 Scala.js 无关(因为它只是一种语言)——这里真正的问题是您的 环境 允许您做什么。总的来说,浏览器故意让访问本地文件变得困难,因为这是一个安全风险;有一些部分解决方法,但我知道没有很好的解决方法。这就是为什么许多 Web 教程让您在开始时构建一个简单的服务器和一个客户端......
  • Scala.js 编译为JavaScript 时,您最好只搜索如何使用JavaScript 访问本地文件。上次我检查时,这是不可能的,至少在 Browser-JS 中是不可能的(出于安全原因,任何网页的 JS 都可以访问您的所有个人文件,上传它们等)。由于这似乎没有改变,您需要有一些服务器(例如使用Playframework 或类似的)并从那里访问文件。

标签: json scala scala.js


【解决方案1】:

就像上面其他人所说的,在浏览器中运行的 Javascript 通常无法访问本地文件系统。有一些例外:

  • The File API 可让您访问用户在 UI 中使用<input type="file" /> 或拖放到浏览器窗口中选择的文件。

  • The Filesystem API 允许您以您想要的方式访问文件,但它是非标准的,并且在大多数浏览器中不受支持。 Scala.js 似乎也没有任何类型,但我不确定。

scala-js-dom 具有您可以使用的文件 API 的类型 - 在其源中搜索 FileFileList 类型。它的 API 反映了 Javascript API,因此您需要了解如何在 JS 中准确执行此操作。然后将其翻译成 Scala.js 会很容易(或者至少是一个不同的问题)。

如果文件 API 不适用于您的用例,另一种选择是使用 json-server 之类的东西通过 HTTP 在 localhost 上轻松提供 JSON 文件。

【讨论】:

    猜你喜欢
    • 2016-10-04
    • 2015-11-12
    • 2017-12-23
    • 2017-04-10
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2023-04-08
    • 2013-11-03
    相关资源
    最近更新 更多