2012-05-09 57 views
1

经过漫长的搜索回购文件夹,我发现在Android的rhino1_7R2.jar在http://code.google.com/p/android-scripting/source/browse/rhino/rhino1_7R2.jar不幸的是1_7R3不存在。安卓,Javascript,犀牛,JSON

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

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

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

回答

1

据我所知,你有一些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; 
+0

它读取哪个文件夹? RES /资产?我会在早上第一时间尝试。顺便说一下,每次我运行一个小脚本时,仍然会考虑加载json2文件的开销。或者,也许我可以加载一次并重新使用会使其更复杂的上下文。想法/经验的表现也将不胜感激。 –

+0

您需要在加载调用中指定json2.js的完整路径。 json2.js非常小。事实上,你甚至可以考虑将其内容复制到脚本中。 –