Конвертировать JSON в TW Объект типа ЛЮБОЙ - PullRequest
0 голосов
/ 26 октября 2018

Использование 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 Ответ

0 голосов
/ 31 октября 2018

Первое, что я хотел бы отметить, что в моей версии 8.6 вызов JSON.parse () просто работает, поэтому вам не нужен инструментарий сообщества. Следует отметить, что этот подход, по-видимому, сталкивается с той же ошибкой, с которой вы сталкиваетесь, когда пытаетесь сделать это, используя ЛЮБОЙ или Запись.

Исходя из ошибки, кажется, что лежащий в основе TWObject не позволит вам ссылаться на поля-члены, которые явно не объявлены. В моих тестах с использованием строки JSON -

var json='{ "name" : "Andrew", "value" : "42"}';

Я пытался -

tw.local.myNvp = JSON.parse(json);
tw.local.myAny = JSON.parse(json);

Первый из них, который анализировал переменную типа «NameValuePair» из системного инструментария данных, работал. 2-й, который пытался разобраться в "ЛЮБОМ", не удался. Я также попытался с Record, чтобы увидеть, сможем ли мы туда добраться, но и это не удалось.

Мое предложение состояло бы в том, чтобы вернуть необработанный JSON вызывающей стороне и заставить его вызвать строку разбора выше. Я предполагаю, что вызывающая сторона ожидает определенного типа назад, что означает, что переменная не является абстрактным типом, поэтому вызов parse должен работать.

- Андрей Пайер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...