在JavaScript中,我的Worklight Client可以将任意对象传递给适配器:
var payload = { able: 3488, baker: "wibble"};
var invocationData = {
adapter : 'xxx',
procedure : 'xxx',
parameters : [payload],
compressResponse : false
};
var options = {
onSuccess: onCallSuccess,
onFailure: onCallFailure
};
WL.Client.invokeProcedure(invocationData, options);
并且适配器可以访问对象
function xxx(p1) {
return {'answer': p1.able};
}
在原生API中,似乎我们仅限于原始类型:
public void setParameters(java.lang.Object [] parameters)
这种方法 设置请求参数。数组中对象的顺序 是将它们发送到适配器的订单
参数:对象 - 参数基本类型的对象数组(String,Integer, Float,Boolean,Double)。数组中对象的顺序是 它们被发送到适配器的顺序。
因此,如果JavaScript和Native客户端都使用我的适配器,则需要接受任何复杂对象作为JSON字符串。 除非有其他替代方案,否则<?strong>
答案 0 :(得分:1)
我没有看到比简单地按照你的建议对字符串进行字符串化的更好的选择。您是否在本地使用JSON以外的对象?如果是这样,对象的结构是什么?