Esper访问阵列事件属性

时间:2016-11-16 11:31:02

标签: esper

我想使用Esper处理以下JSON消息:

{
    "firstname":"John",
    "lastname":"Do",
    "address":[{"street":"Maplestreet","number":100,"city":"New York"}]
}

当架构看起来像:

create schema Address (street string, number int, city string);
create schema Person (firstname string, lastname string, address Address[]);

在数组中选择事件属性的正确方法是什么? 我试过了:

select address[0].street from Person
select address.street from Person
select address[0] from Person
select {address.street} as street from Person

但我得到空值。架构错了还是我错过了什么?

编辑:当我尝试:

select * from Person

我得到了最初的JSON作为结果

EDIT2: 这是我的Jruby代码:

address_type = {
        "street" => "string",
        "number" => "int",
        "city" => "string" 
        }

  epService.getEPAdministrator.getConfiguration.addEventType("Address", address_type)

  person_type = {
        "firstname" => "string",
        "lastname" => "string",
        "address" => "Address[]"
        "
        }
  epService.getEPAdministrator.getConfiguration.addEventType("Person", person_type)

1 个答案:

答案 0 :(得分:0)

很可能您的应用程序未正确填充事件对象。我建议首先在相同的结构中创建一个Java类来测试语句。一旦工作,切换到您最初使用的事件对象,即XML,对象数组或Map或......