Ibm mobilefirst WL 6.1.0.02-如何将JSON对象从本机iOS和本机Android传递到HTTP Javascript适配器

Ibm mobilefirst WL 6.1.0.02-如何将JSON对象从本机iOS和本机Android传递到HTTP Javascript适配器,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,我们的项目应该重用现有的适配器,这些适配器期望JSON对象作为适配器过程的输入参数 当我们尝试使用以下命令调用适配器时: WLProcedureInvocationData *myInvocationData = [[WLProcedureInvocationData alloc] initWithAdapterName:@"UserProfileAdapter" procedureName:@"getUserProfile"]; myInvocationData.parameters = [

我们的项目应该重用现有的适配器,这些适配器期望JSON对象作为适配器过程的输入参数

当我们尝试使用以下命令调用适配器时:

WLProcedureInvocationData *myInvocationData = [[WLProcedureInvocationData alloc] initWithAdapterName:@"UserProfileAdapter" procedureName:@"getUserProfile"];

myInvocationData.parameters = [NSArray arrayWithObjects:@"{\"userEmail\" : \"xxx@xxx.com\"}", nil];
然后,传递给适配器过程的输入对象不是Javascript对象,而是Javascript字符串

为了从中生成对象,我们始终需要使用以下方法将输入从字符串解析为对象:

input = JSON.parse(input);
由于我们正在使用混合应用程序重用生产中的现有代码,因此这不是一个选项,因为对于hyrbid应用程序,这可以很好地工作


我们如何将JSON传递给Javascript适配器,以便适配器自动创建输入对象而不是字符串?

我们找到的答案是针对Swift和Android的。。。不再尝试ObjC

iOS:

安卓:

JSONObject jsonObj = new JSONObject("\"userName\":\"xxx@xx.com\",\"password\":\"1234\"}");
Object[] params = new Object[]{jsonObj};

WLProcedureInvocationData invocationData = new WLProcedureInvocationData("AuthAdapter", "login");
invocationData.setParameters(params);
我们还没有尝试过使用更深层的嵌套JSON结构,这可能仍然很麻烦,但对于基本的JSON,这对我们现在来说很好

JSONObject jsonObj = new JSONObject("\"userName\":\"xxx@xx.com\",\"password\":\"1234\"}");
Object[] params = new Object[]{jsonObj};

WLProcedureInvocationData invocationData = new WLProcedureInvocationData("AuthAdapter", "login");
invocationData.setParameters(params);