Как получить доступ / вернуть субобъекты из юрского кода js?
У меня есть следующий код, использующий механизм юрского 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);
}
";
}
}
... тогда мой объект спецификации успешно возвращается в виде строки в переменную _responseObject.
Однако, если я пытаюсь получить доступ к любым подобъектам, либо через точечную запись, либо используя строковый ключ, то ничего не возвращается. Например:
public static string CreateDefaultState()
{
return @"
function createDefaultState(spec) {
return(spec.checkpoints);
}
";
}
... тогда ничего не возвращается.
Я не могу получить доступ к подобъектам и работать с ними?
Вот объект спецификации для вашей справки:
{
'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'
}
}
}
Если я получаю доступ к spec.checkpoints в отдельном приложении, которое не использует jurassic или.net и просто запускает javascript, я могу получить доступ к любому из подобъектов, используя показанные обозначения.