我想使用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)
答案 0 :(得分:0)
很可能您的应用程序未正确填充事件对象。我建议首先在相同的结构中创建一个Java类来测试语句。一旦工作,切换到您最初使用的事件对象,即XML,对象数组或Map或......