Конвертировать JSON в TW Объект типа ЛЮБОЙ
Используя IBM BPM 8.6 у меня есть JSON следующим образом:
tw.local.person = "{\"firstName\":\"Ahmed\",\"job\":\"Doctor\"}";
Я использую вспомогательный инструментарий BPM для преобразования json в TW Object
tw.local.outputObject = BPMJSON.convertJSONToTw(tw.local.person);
РЕЗУЛЬТАТЫ:
Если outputObject имеет тип Person
(с атрибутами firstName и job), он работает и объект создается.
Если outputObject имеет тип any
не работает
Как я могу получить вывод в any
объект?
Любой обходной путь или твик в файлах BPM-JSON-Utils.js или json2.js?
1 ответ
Первое, что я хотел бы отметить, что в моей версии 8.6 вызов JSON.parse() просто работает, поэтому вам не нужен инструментарий сообщества. Следует отметить, что этот подход, по-видимому, сталкивается с той же ошибкой, что и вы, когда вы пытаетесь сделать это, используя ЛЮБОЙ или Запись.
Исходя из ошибки, кажется, что лежащий в основе TWObject не позволит вам ссылаться на поля-члены, которые явно не объявлены. В моих тестах, используя JSON String -
var json='{ "name" : "Andrew", "value" : "42"}';
Я старался -
tw.local.myNvp = JSON.parse(json);
tw.local.myAny = JSON.parse(json);
Первый, который анализировал переменную типа "NameValuePair" из системного инструментария данных, работал. 2-й, который пытался разобраться в "ЛЮБОМ", потерпел неудачу. Я также попытался с Record, чтобы увидеть, сможем ли мы туда добраться, но и это не удалось.
Моим предложением было бы вернуть необработанный JSON вызывающей стороне и заставить его вызвать строку разбора выше. Я предполагаю, что вызывающая сторона ожидает определенного типа назад, что означает, что переменная не является абстрактным типом, поэтому вызов parse должен работать.
Эндрю Пайер