【问题标题】:Android, Javascript, Rhino, JSON安卓、Javascript、犀牛、JSON
【发布时间】:2012-05-09 20:52:33
【问题描述】:

在 repo 文件夹中长时间搜索后,我在http://code.google.com/p/android-scripting/source/browse/rhino/rhino1_7R2.jar 找到了适用于 Android 的 rhino1_7R2.jar 不幸的是 1_7R3 不存在。

我使用的脚本使用 1_7R2 中不存在的 JSON.stringify 函数。 Rhino 有 JSON2.js 文件,但我不知道在运行时加载它的正确方法。文档和示例代码很弱。我应该将它作为字符串加载并添加到正在运行的脚本中吗?还是有更好的方法?

我正在使用 JavaScript 在循环中动态评估一些计算。我真的想避免每次调用 javascript 函数时都预先添加 JSON2.js。花了将近一天的时间才发现 Rhino 在最新版本中支持 JSON 对象,并且没有人费心将其移植到 Android。看起来像另一个缺乏支持的开源项目。

我应该放弃并考虑使用 WebView 方法吗?有什么想法吗?

【问题讨论】:

    标签: javascript android json scripting rhino


    【解决方案1】:

    据我了解,您有一些想要由 Rhino 运行的 JavaScript 脚本。如果要加载另一个 JavaScript 文件,可以使用load 函数:

    load("/your/path/json2.js");
    

    调用后,您的脚本可以使用 json2 库。

    var testStr = '{"test" : {"a": "aval", "b" : "bval"}}';
    var jsonObj = JSON.parse(testStr);
    var a = jsonObj.test.a;
    

    【讨论】:

    • 它从哪个文件夹读取?资源/资产?我要在早上尝试第一件事。顺便说一句,每次我运行一个小脚本时,仍然会考虑 WebView 来加载 json2 文件的开销。或者也许我可以加载一次并重用上下文,这会使它变得更复杂。对性能的想法/经验也将不胜感激。
    • 您需要在 load 调用中指定 json2.js 的完整路径。 json2.js 非常小。事实上,您甚至可以考虑将其内容复制到您的脚本中。
    猜你喜欢
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多