使用Jint从C#返回的Javascript访问JSON数组项

使用Jint从C#返回的Javascript访问JSON数组项,javascript,c#,json,.net,jint,Javascript,C#,Json,.net,Jint,我试图使用Jint在C#和Javascript之间来回通信。基本上是一帆风顺的,但是我无法在JS脚本中访问从C#返回的数组中的项目。访问返回对象上的属性可以正常工作,但访问数组项总是返回null 下面是我设置Jint引擎并执行Javascript的C#代码 public class Runtime { public dynamic fetch() { var json = @"{ 'firstName': 'Anakin',

我试图使用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(…),但我试图避免额外的步骤


非常感谢您的帮助。谢谢。

我对for…in循环也有同样的问题。当我尝试循环使用从C#生成的对象的属性时,它不起作用。您尝试过NuGet的3.x预览版本吗?我对for…in循环也有同样的问题。当我尝试循环从C#生成的对象的属性时,它不起作用。您尝试过NuGet的3.x预览版本吗?