Конвертировать 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 должен работать.

Эндрю Пайер

Другие вопросы по тегам