我有以下使用侏罗纪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,则可以使用所示符号访问任何子对象。