2017-01-10 14 views
1

Мы используем MobileFirst Foundation 8.0.0.00-20160822-2140, развернутую на WebSphere Application Server V8.5.5.5.Как передать объект массива json из одного адаптера javascript в другой адаптер javascript?

  1. Как передать объект массива json из адаптера javascript в другой адаптер javascript?

  2. Как передать объект массива json с помощью Apostrophe из адаптера javascript в другой адаптер javascript?

  3. Есть ли предел в размере JSON?

Мы постарались:

  1. Для вызова второй яваскрипта адаптера с первым яваскриптом адаптера:

    var samplejsonarrayobject = [{a:"xxx",b:"yyy"},{c:"zzz",d:"aaa"}]; 
    var res = MFP.Server.invokeProcedure({ 
        adapter: "secondAdapter", 
        procedure: "secondAdapterFunction", 
        parameters: [samplejsonarrayobject] 
    }); 
    
  2. Для вызова второй яваскрипта адаптера с первым 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. Для вызова второй яваскрипта адаптера от первого яваскрипта адаптера с очень большим 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. Для вызова второй яваскрипта адаптера от первого яваскрипта адаптера с очень большим форматом JSON с Apostrophe символом:

    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: неверный тип элемент

Для 2) испытательный кейс: Способный передавать JSON.

Для 3) испытательного образца: невозможно передать JSON.

Вызванный: com.fasterxml.jackson.core.JsonParseException: Неожиданное символ ('S' (код 115)): ожидал запятая отделить ARRAY записи в [Источник: [ '[{а: "xx'x", б: "ууу"}, {C: "ZZZ", д: "ааа"}]; строка 1, столбец ]

Для 4) теста:

Вызванный: com.fasterxml.jackson.core.JsonParseException: Неожиданно символ ('s' (код 115)): ожидал, что запятая разделит ARRAY записей в [Источник: ['[{a: "xx'x", b: "yyy"}, {c: " ZZZ», д: "ааа"}]; строка 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 Platform Foundation 7.1. Команда разработчиков будет работать над исправлением этого.

Чтобы отслеживать этот вопрос был открыт следующий APAR: PI74759: НЕ МОЖЕТ ПРОЙТИ А JSON объект или JSON ARRAY в качестве параметра MFP.SERVER.INVOKEPROCEDURE

Обновление: Установите последнюю версию 8.0 Ifix для получения исправления для этой проблемы, которая находится на сервере, поэтому требуется установка нового сервера.

+0

Thx ... Удалось решить его, заменив «s» на «' s» – user1872384

 Смежные вопросы

  • Нет связанных вопросов^_^