1

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

很感谢任何形式的帮助。谢谢你。

4

0 回答 0