如何从侏罗纪js代码访问/返回子对象?

时间:2018-11-02 21:41:17

标签: c# object jurassic

我有以下使用侏罗纪javascript引擎的代码:

_engine.Evaluate(JsFileAndFunctionStrings.CreateDefaultState());
            _responseString = _engine.CallGlobalFunction<string>("createDefaultState", spec);

如果我仅使用以下代码...

public static class JsFileAndFunctionStrings
{
    public static string CreateDefaultState()
    {
        return @"
            function createDefaultState(spec) {
                return(spec);
            }
        ";
    }
}

...然后我的spec对象作为字符串成功返回到_responseObject变量。

但是,如果我尝试通过点表示法或使用字符串键来访问任何子对象,则不会返回任何内容。例如:

public static string CreateDefaultState()
    {
        return @"
            function createDefaultState(spec) {
                return(spec.checkpoints);
            }
        ";
    }

...然后什么也不返回。

我不能访问子对象并对其进行操作吗?

以下是spec对象供您参考:

{
                    'name': 'demo'
                    , 'ident': 'demo'                                  
                    , 'checkpoints': {
                        'wk1': {
                            'default': {
                                'cf': 'false'
                                , 'ping': 'false'
                            }
                            , 'testa': {
                                'cf': 'true'
                                , 'ping': 'true'
                            }
                            , 'testb': 'S1'
                        }
                        , 'wk2': {
                            'default': {
                                'cf': 'false'
                                , 'ping': 'false'
                            }
                            , 'testa': {
                                'cf': 'true'
                                , 'ping': 'true'
                            }
                    }
                }

如果我在不使用jurassic或.net且仅运行javascript的单独应用中访问spec.checkpoints,则可以使用所示符号访问任何子对象。

0 个答案:

没有答案