Как создать сложный объект в ESQL - PullRequest
0 голосов
/ 11 февраля 2020

Я хотел бы создать следующий объект JSON в E SQL и поместить его в SET SET Root. JSON .Data. Как мне это сделать?

{ 
      "active"   : [ {"name" : "test"}, 
                     {"name": "test2"}]
      "inactive" : [ {"name" : "test3"}]
}

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Существует стандартная процедура для разработчиков IIB, которые хотят вывести специфицированный c формат XML / JSON:

  1. Используйте текстовый редактор для создания документа, который вы хотите вывести
  2. Создать простой поток сообщений, который анализирует этот документ.
    • На узле FileInput (или HTTPInput, если вы предпочитаете) задайте для домена значение «JSON»
    • . Убедитесь, что второй узел является узлом трассировки с шаблоном, установленным на «$ { Root} '.
  3. Вставьте пример JSON в поток сообщений
  4. Изучите выходные данные узла трассировки, уделяя особое внимание типу поля в каждом узел
  5. Запись E SQL, который создает идентичное дерево сообщений в разделе Вывод Root. JSON .Data
1 голос
/ 12 февраля 2020

В следующем фрагменте кода показано, как создать JSON, который вам необходим:

    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        -- Create JSON domain
        CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON' NAME 'JSON';
        -- Create root Data field
        CREATE FIELD OutputRoot.JSON.Data;
        DECLARE OutMsg REFERENCE TO OutputRoot.JSON.Data;

        CREATE FIELD OutMsg.active IDENTITY (JSON.Array)active;
        SET OutMsg.active.Item[1].name = 'test';
        SET OutMsg.active.Item[2].name = 'test2';
        SET OutMsg.(JSON.Array)inactive.Item[1].name = 'test3';
        RETURN TRUE;
    END;

Также вы можете прочитать дополнительную информацию о работе с JSON здесь Управление сообщениями в домене JSON и здесь Создание или преобразование JSON сообщения с использованием карты сообщений

...