我已经设置了一个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函数中的Print语句确认数组包含值。
我假设SSJS数组必须转换为CSJS数组。我必须怎么做?
发布于 2018-11-20 16:52:02
我不经常使用JsonRPCService,但我认为最好的选择是返回JSON。我不确定它是否需要JSON对象,或者JSON数组是否可以工作。如果一个JSON数组就足够了,那么在Domino中最好的方法就是使用com.ibm.commons.util.io.json.JsonJavaArray。这可以接受一个Java List或者它的构造函数中的一个对象,所以com.ibm.commons.util.io.json.JsonJavaArray jja = new com.ibm.commons.util.io.json.JsonJavaArray(myArray)。因为它是SSJS,所以您需要导入包或使用完整的分层名称。它可能不是为处理SSJS数组而设计的,这取决于Java中的转换方式。如果您只想用JsonJavaArray替换SSJS数组,那么一旦创建为一个空白数组,它就会像一个Java list一样工作。
https://stackoverflow.com/questions/53373622
复制相似问题