我正在尝试使用 Jint 在 C# 和 Javascript 之间来回通信。基本上一帆风顺,但是我无法在我的 JS 脚本中访问从 C# 返回的数组中的项目。访问返回对象的属性可以正常工作,但访问数组项总是返回 null。
下面是我设置 Jint 引擎并执行我的 Javascript 的 C# 代码。
public class Runtime
{
public dynamic fetch()
{
var json = @"{
'firstName': 'Anakin',
'age': 100,
'kids': ['Luke', 'Leia']
}";
var results = JsonConvert.DeserializeObject(json);
return results;
}
}
// setup jint engine
var engine = new Engine();
engine.SetValue("runtime", new Runtime());
// execute JS script (see below)
engine.Execute(script);
我正在执行的 Javascript 如下所示:
var graph = runtime.fetch();
// accessing simple properties like this works fine
var fname = graph.firstName;
var age = graph.age;
// however, accessing array items returns null
// note: i can get the array, but not the items in the array
var firstKid = graph.kids[0]; //returns null?!
注意:我意识到我可以从 C# 返回一个字符串,然后从 Javascript 调用 JSON.parse(...),但我试图避免额外的步骤。
很感谢任何形式的帮助。谢谢你。