如何从 Android 中的 org.mozilla.NativeArray 获取值?

问题描述

我使用 ScriptEngine 和 rhino 作为引擎名称来评估 Android 中的 javascript。我评估的 javascript 代码如下所示:

var course_data = [];
course_data[0] = [];
course_data[0]['course_name'] = 'Programming 101';course_data[0]['course_code'] = 'XXX12345';course_data[0]['course_credit'] = '2';
course_data[1]['course_name'] = 'Next Level Programming';course_data[0]['course_code'] = 'XXX12356';course_data[0]['course_credit'] = '3';

ScriptEngine get("course_data") 方法返回 org.mozilla.NativeArray 对象。我无法使用 org.jdk.Nashorn.api.scripting。ScriptObjectMirror,因为 NativeArray 无法转换为 ScriptObjectMirror。

如何从这个 NativeArray 对象中获取每个 course_data 课程名称代码和学分值?

非常感谢。

解决方法

我使用 ScriptableObject 来获取主 NativeArray 中的每个 NativeArray。

ScriptableObject data = (ScriptableObject) engine.get("course_data ");
for(int j=0;j<data.size();j++){
    NativeArray courseArray = (NativeArray) data.get(j);
    String courseName= courseArray .get("course_name").toString();
    String courseCode= courseArray .get("course_code").toString();
    int courseCredit= Integer.parseInt(courseArray .get("course_credit").toString());
    System.out.println(courseName+" "+courseCode+" "+courseCredit);
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...