如何在 ESQL 中创建复杂对象

How to create a complex object in ESQL

我想在 ESQL 中创建以下 JSON 对象并将其放在 SET OutputRoot.JSON.Data 上。我该怎么做?

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

对于想要输出特定格式 XML/JSON:

的 IIB 开发人员来说,有一个标准程序
  1. 使用文本编辑器创建您要输出的文档
  2. 创建一个简单的消息流来解析该文档。
    • 在 FileInput 节点(或 HTTPInput,如果您愿意)将域设置为 'JSON'
    • 确保第二个节点是 Pattern 设置为“${Root}”的 Trace 节点。
  3. 将示例 JSON 通过消息流
  4. 检查 Trace 节点输出,特别注意每个节点上的字段类型
  5. 编写在 OutputRoot.JSON.Data
  6. 下生成相同消息树的 ESQL

下面的代码片段演示了如何创建您需要的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;

您还可以在此处 Manipulating messages in the JSON domain and here Creating or transforming a JSON message by using a message map

阅读有关 JSON 的更多信息