如何将 json 数组对象从一个 javascript 适配器传递到另一个 javascript 适配器?
How to pass json array object from one javascript adapter to another javascript adapter?
我们正在使用部署到 WebSphere Application Server V8.5.5.5 的 MobileFirst Foundation 8.0.0.00-20160822-2140。
如何将 json 数组对象从 javascript 适配器传递到另一个 javascript 适配器?
如何将带撇号的 json 数组对象从 javascript 适配器传递到另一个 javascript 适配器?
JSON大小有限制吗?
我们已经尝试过:
从第一个 javascript 适配器调用第二个 javascript 适配器:
var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}];
var res = MFP.Server.invokeProcedure({
adapter: "secondAdapter",
procedure: "secondAdapterFunction",
parameters: [samplejsonarrayobject]
});
使用 stringify
从第一个 javascript 适配器调用第二个 javascript 适配器:
var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}];
var stringifysamplejsonarrayobject = JSON.stringy(samplejsonarrayobject);
var res = MFP.Server.invokeProcedure({
adapter: "secondAdapter",
procedure: "secondAdapterFunction",
parameters: [stringifysamplejsonarrayobject]
});
要使用 非常大 JSON 文件从第一个 javascript 适配器调用第二个 javascript 适配器:
var largesamplejsonarrayobject = [{a:"xxx",b:"yyy"}...................................{c:"zzz",d:"aaa"}];
var largestringifysamplejsonarrayobject = JSON.stringy(largesamplejsonarrayobject);
var res = MFP.Server.invokeProcedure({
adapter: "secondAdapter",
procedure: "secondAdapterFunction",
parameters: [largestringifysamplejsonarrayobject]
});
从第一个 javascript 适配器调用第二个 javascript 适配器,带有非常大的 JSON 带撇号 :
var apostrophesamplejsonarrayobject = [{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}];
var apostrophestringifysamplejsonarrayobject = JSON.stringy(apostrophesamplejsonarrayobject);
var res = MFP.Server.invokeProcedure({
adapter: "secondAdapter",
procedure: "secondAdapterFunction",
parameters: [apostrophestringifysamplejsonarrayobject]
});
返回错误
对于 1) 测试用例:
[1/10/17 22:06:04:703 MYT] 00000131 MFP.Logger
java.lang.IllegalArgumentException: invalid type of element
对于2)测试用例:能够通过JSON.
对于 3) 测试用例: 无法通过 JSON.
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected
character ('s' (code 115)): was expecting comma to seperate ARRAY
entries at [Source : ['[{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}]; line 1,
column]
对于 4) 测试用例:
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected
character ('s' (code 115)): was expecting comma to seperate ARRAY
entries at [Source : ['[{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}]; line 1,
column]
通过以下方式解决:
jsonString = replaceAllString(jsonString, "'s", "'s");
function replaceAllString(stringJ,search, replacement) {
return stringJ.replace(new RegExp(search, 'g'), replacement);
}
这确实是 MobileFirst Platform Foundation 7.1 的缺陷和回归。开发团队将努力解决此问题。
为了跟踪此问题,已打开以下 APAR:PI74759:无法将 JSON 对象或 JSON 数组作为参数传递给 MFP.SERVER.INVOKEPROCEDURE
更新:安装最新的 8.0 iFix 以获得此问题的修复,该问题驻留在服务器上,因此需要安装新的服务器。
我们正在使用部署到 WebSphere Application Server V8.5.5.5 的 MobileFirst Foundation 8.0.0.00-20160822-2140。
如何将 json 数组对象从 javascript 适配器传递到另一个 javascript 适配器?
如何将带撇号的 json 数组对象从 javascript 适配器传递到另一个 javascript 适配器?
JSON大小有限制吗?
我们已经尝试过:
从第一个 javascript 适配器调用第二个 javascript 适配器:
var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}]; var res = MFP.Server.invokeProcedure({ adapter: "secondAdapter", procedure: "secondAdapterFunction", parameters: [samplejsonarrayobject] });
使用
stringify
从第一个 javascript 适配器调用第二个 javascript 适配器:var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}]; var stringifysamplejsonarrayobject = JSON.stringy(samplejsonarrayobject); var res = MFP.Server.invokeProcedure({ adapter: "secondAdapter", procedure: "secondAdapterFunction", parameters: [stringifysamplejsonarrayobject] });
要使用 非常大 JSON 文件从第一个 javascript 适配器调用第二个 javascript 适配器:
var largesamplejsonarrayobject = [{a:"xxx",b:"yyy"}...................................{c:"zzz",d:"aaa"}]; var largestringifysamplejsonarrayobject = JSON.stringy(largesamplejsonarrayobject); var res = MFP.Server.invokeProcedure({ adapter: "secondAdapter", procedure: "secondAdapterFunction", parameters: [largestringifysamplejsonarrayobject] });
从第一个 javascript 适配器调用第二个 javascript 适配器,带有非常大的 JSON 带撇号 :
var apostrophesamplejsonarrayobject = [{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}]; var apostrophestringifysamplejsonarrayobject = JSON.stringy(apostrophesamplejsonarrayobject); var res = MFP.Server.invokeProcedure({ adapter: "secondAdapter", procedure: "secondAdapterFunction", parameters: [apostrophestringifysamplejsonarrayobject] });
返回错误
对于 1) 测试用例:
[1/10/17 22:06:04:703 MYT] 00000131 MFP.Logger java.lang.IllegalArgumentException: invalid type of element
对于2)测试用例:能够通过JSON.
对于 3) 测试用例: 无法通过 JSON.
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('s' (code 115)): was expecting comma to seperate ARRAY entries at [Source : ['[{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}]; line 1, column]
对于 4) 测试用例:
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('s' (code 115)): was expecting comma to seperate ARRAY entries at [Source : ['[{a:"xx'x",b:"yyy"},{c:"zzz",d:"aaa"}]; line 1, column]
通过以下方式解决:
jsonString = replaceAllString(jsonString, "'s", "'s");
function replaceAllString(stringJ,search, replacement) {
return stringJ.replace(new RegExp(search, 'g'), replacement);
}
这确实是 MobileFirst Platform Foundation 7.1 的缺陷和回归。开发团队将努力解决此问题。
为了跟踪此问题,已打开以下 APAR:PI74759:无法将 JSON 对象或 JSON 数组作为参数传递给 MFP.SERVER.INVOKEPROCEDURE
更新:安装最新的 8.0 iFix 以获得此问题的修复,该问题驻留在服务器上,因此需要安装新的服务器。