2017-01-10 20 views
1

我們正在使用部署到WebSphere Application Server V8.5.5.5的MobileFirst Foundation 8.0.0.00-20160822-2140。如何將json數組對象從一個javascript適配器傳遞到另一個javascript適配器?

  1. 如何將json數組對象從javascript適配器傳遞到另一個javascript適配器?

  2. 如何通過json數組對象與從JavaScript適配器到另一個JavaScript適配器的撇號?

  3. JSON大小是否有限制?

我們曾嘗試:

  1. 要從第一個JavaScript接口調用第二個JavaScript的適配器:

    var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}]; 
    var res = MFP.Server.invokeProcedure({ 
        adapter: "secondAdapter", 
        procedure: "secondAdapterFunction", 
        parameters: [samplejsonarrayobject] 
    }); 
    
  2. 要從第一個JavaScript調用第二個JavaScript的適配器適配器stringify

    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] 
    }); 
    
  3. 撥叫第一個JavaScript適配器第二JavaScript的適配器與非常大 JSON文件:

    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] 
    }); 
    
  4. 撥叫第一個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)測試用例:

[17年1月10日22:06:04:703 MYT] 00000131 MFP.Logger java.lang.IllegalArgumentException異常:無效類型的元素

對於2)測試用例:能夠通過JSON。

對於3)測試用例:無法傳遞JSON。

所致:com.fasterxml.jackson.core.JsonParseException:意外 字符( 'S'(代碼115)):在[來源 條目期待逗號來單獨ARRAY:['[{一個: 「xx'x」,b: 「YYY」},{C: 「ZZZ」,d: 「AAA」}];線1, 柱]

對於4)測試用例:

所致:com.fasterxml.jackson.core。JsonParseException:意外的 字符('s'(代碼115)):期待逗號將[ARRAY ZZZ」,d: 「AAA」}];線1, 柱]

通過解決它:

jsonString = replaceAllString(jsonString, "'s", "'s"); 

function replaceAllString(stringJ,search, replacement) { 
    return stringJ.replace(new RegExp(search, 'g'), replacement); 
} 
+0

你可以發佈服務器日誌嗎?那些捕獲錯誤信息 –

+0

@VivinK的人,對不起還在編輯這個問題。剛剛將它包含在 – user1872384

回答

2

這確實是一個缺陷,並從MobileFirst平臺基金會7.1迴歸。開發團隊將致力於解決這個問題。

要跟蹤此問題,以下APAR已經開通:PI74759:能不能通過一個JSON對象或JSON數組作爲參數傳遞給MFP.SERVER.INVOKEPROCEDURE

更新:安裝最新的8.0的iFix要獲取此問題的修復程序(駐留在服務器上),因此需要安裝新的服務器。

+0

Thx上方的錯誤部分中...通過將「s」替換爲「' s」來解決它。 – user1872384

相關問題