2016-07-26 7 views
0

에서 스트림에 오브젝트를받습니다 나는 예를 들어 다음 정보를 돌려 Siddhi 락 확장이 : 나는 스트림에서이 정보를 저장 원하는 나는 atribute "clientPublicId"를 사용하여 정보를 필터링 할Siddhi 락

{ 
"licenseKey": "WxyzChXjhJ-dgjfZfHnL9-bWd4e2vxjD-eIs5hDu0To-VOxL111BAj", 
"siteUrl": "http://www.URL.net/", 
"clientPublicId": "CLIENT1", 
"host": "www.urlclient.net" 
} 

{ 
"licenseKey": "WxyzChXjhJ-dgjfZfHnL9-bWd4e2vxjD-eIs5hDu0To-VOxL111BAj", 
"siteUrl": "http://www.URL2.net/", 
"clientPublicId": "CLIENT2", 
"host": "www.urlclient2.net" 
} 

합니다.

다음 코드 wlist : whitelist()는 내 확장 프로그램 Siddhi입니다.

from sensorStream[temperature>98.6] 
select wlist:whitelist() AS arreglo 
insert into outputStream; 

내 문제의 OutputStream는 "arreglo"라는 속성으로 만들어 졌는지, 그래서 clientPublicId에 의해 필터를 기울인다.

제발 도와 줄 수 있어요.

답변

0

Siddhi에서 JSON 또는 XML을 처리하려는 경우 Siddhi에서 'map'확장 지원을 사용할 수 있습니다. map:createFromJSON(<string> JSONstring)을 사용하여지도를 만든 다음 map:get(<Map> map, <Object> key)을 통해 값에 액세스 할 수 있습니다. cast(<object> toBeCasted, <string> castTo)과 함께 사용하기 전에지도의 출력물을 캐스팅해야합니다.

예 :이 문제를 해결 cast(map:get(dataMap, 'clientPublicId'),'string')

희망.

+0

스트림이있는 json 배열과 필터 정보를 수신 할 수 있습니까? –