Как преобразовать массив SSJS в CSJS - PullRequest
0 голосов
/ 19 ноября 2018

Я настроил службу jsonRPC:

<xe:jsonRpcService id="jsonRpcServiceKeywords"
        serviceName="rpcServiceKey" rendered="true">
        <xe:this.methods>
            <xe:remoteMethod name="getKeyWordalias">
                <xe:this.arguments>
                    <xe:remoteMethodArg name="key" type="string" />
                </xe:this.arguments>
                <xe:this.script><![CDATA[var values = getKeywordAliasValues("matterStatus",key);
return values;]]></xe:this.script>
            </xe:remoteMethod>
        </xe:this.methods>
    </xe:jsonRpcService>

Функция getKeywordAliasValues ​​возвращает массив SSJS.

function getKeywordAliasValues(key,values){
var aliasValues = new Array();
// routine to add values to array
return aliasValues;
    }

Когда я вызываю службу frpm на стороне клиента javaScript:

var alias = rpcServiceKey.getKeyWordalias("10");
alert(alias)
alert(alias[0])

Сначала я возвращаю объект. Второе сообщение не определено.

Операторы печати в моей функции SSJS подтверждают, что массив содержит значения.

Я предполагаю, что массив SSJS должен быть преобразован в массив CSJS. Как мне это сделать?

1 Ответ

0 голосов
/ 20 ноября 2018

Я не очень часто использовал JsonRPCService, но я думаю, что лучшим вариантом будет вернуть JSON.Я не уверен, нужен ли ему объект JSON или будет ли работать массив JSON.Если массива JSON достаточно, лучшим способом в Domino будет использование com.ibm.commons.util.io.json.JsonJavaArray.Это может занять список Java или объект в его конструкторе, поэтому com.ibm.commons.util.io.json.JsonJavaArray jja = new com.ibm.commons.util.io.json.JsonJavaArray(myArray).Поскольку это SSJS, вам нужно либо импортировать пакет, либо использовать полное иерархическое имя.Возможно, он не предназначен для обработки массива SSJS, в зависимости от того, как он конвертируется в Java.Если вы хотите заменить массив SSJS просто JsonJavaArray, один раз созданный как пустой массив, он работает как список Java.

...