如何在Bixby中将json文件提取到本地文件系统?

时间:2019-11-19 23:07:23

标签: bixby

如果我可以简单地将替换或并行的“ content.js”文件下载到code /目录中,则可以避免编写API将新内容添加到Bixby中的事实模板封装中。在Bixby VM中运行的JavaScript子集中,有没有办法做到这一点?我只想要类似的东西:

获取json本地文件目标路径的URL

懒人的API!?

2 个答案:

答案 0 :(得分:0)

您不能直接更改一个提交的文件,但是可以使用本地javascript文件手动保存json数据(如下所示)。或者,您可以使用Google的API从Google驱动器文件中获取数据。这样您就可以更新Google驱动器中的文件,并且数据将被更新。但是Google API对于免费使用的API调用有一定的限制。

起初,我假设您想将文件本地保存在包本身中。所以我在下面写了解决方案:

因此,为了让您在本地更新JSON,您需要在JavaScript代码中使用require(%code-folder-file-path%)。并且在您的数据保存javascript文件中,使用module.exports函数将数据从另一个文件中调用时发送到require(%code-folder-file-path%)函数。

  

例如:

假设层次结构:

-asset
- code
    |_ lib
    |  |_ DataCollection.js
    |_ engine
       |_ Search_Data_Algorithm.js
- action
- model
- resources

注意:假定顶层是创建新胶囊时创建的默认文件夹,并且默认情况下,Javascript文件的本地路径始于名为“ 代码”的根文件夹,该文件夹中包含“ lib”和“ engine”作为子文件夹。因此,最初的顶层文件夹(例如“资产,代码,操作,模型,资源”)是用于在调用本地文件路径中包含的文件和文件夹时使用本地文件路径的根文件夹。

  1. DataCollection.js
module.exports = JSON.parse(myJSON_data);
myJSON_data = “{•••}”;
  1. Search_Data_Algorithm.js
const Data = require(‘lib/DataCollection.js’);

/** since the root folder is “Code”,
*   we don’t need to write:
*   require(‘code/lib/DataCollection.js’)
*/

console.log(Data); 
// this will output data in JSON file. 

也请注意:如果要使用层次结构上一级的文件夹中的文件,请在路径行之前使用../,并在其后添加文件/文件夹名称。

答案 1 :(得分:0)

直接的回答是“否”,您将无法像您描述的那样进行更新。

但是,对于动态内容,您可以利用胶囊配置系统-https://bixbydevelopers.com/dev/docs/reference/ref-topics/capsule-config

例如,您在胶囊配置属性中定义了一些事实...

How to configure config 然后在您的代码中动态加载它们

var config = require("config")
var myFact01 = config.get('myFact01');
var myFact02 = config.get('myFact02');
var myFact03 = config.get('myFact03');