2017-11-05 8 views
0

teeid를 사용하여 REST를 호출하고 있습니다.teid에 JSON 배열 사용

하나의 출력 응답에 id, 성 등 성의가 다른 연락처가있는 JSON 배열이있는 경우. JSON 배열을 가져 오는 절차는 어떻게 작성해야합니까?

내 세부 예는 감사합니다 예를 들어

답변

0

매우 도움이 될 것입니다, 당신은 당신이

SELECT * 
FROM XMLTABLE('/response/response' passing jsontoxml('response', jsonparse('[{"firstName" : "George", "lastName" : "Micheal" }, { "firstName" : "Jerry", "lastName" : "Springer" }]', TRUE)) COLUMNS firstname string, lastname string) x 

같은 쿼리를 실행할 수있는이

[ 
    { 
     "firstName":"George", 
     "lastName":"Micheal" 
    }, 
    { 
     "firstName":"Jerry", 
     "lastName":"Springer" 
    } 
] 

같은 JSON 내용이 그 것이다

firstName lastName 
George  Micheal 
Jerry  Springer 
과 같은 표 형식의 결과를 반환합니다. 이제

, 당신은 당신이 VDB에 뷰의 위의 정의를 넣어, 당신은 Teiid 서버에 VDB를 배포 할 때, 다음 JDBC 드라이버를 사용하여

CREATE VIEW Person (firstName string, lastName String) AS 
    SELECT x.firstName, x.lastName 
    FROM XMLTABLE('/response/response' passing jsontoxml('response', jsonparse('[{"firstName" : "George", "lastName" : "Micheal" }, { "firstName" : "Jerry", "lastName" : "Springer" }]', TRUE)) COLUMNS firstname string, lastname string) x 

같은보기에 위의 래핑 할 수 원하는 경우 그렇지 않으면 덩어리를 기대하고, 나는 내가 JSONPARSE 기능을 필요로하는 JSON 문서를 제공 한 이후

select * from person 

또한, 그 위에주의 간단하게 실행할 수 있습니다. JSONTOXML이 'response'요소로 시작하는 각 배열을 래핑 한 다음 'response'요소에 루트를 래핑하는 루트로 두 번 "/ response/response"라는 까다로운 부분도 있습니다.