2013-07-02 1 views
0

Web API 호출에 JSON 형식으로 전송해야하는 데이터베이스 뷰가 있지만, 데이터를 평평하게하십시오. 내가 도착하고 싶은 형식은 무엇인가 같다 :Mule DataMapper를 사용하여 JSON 뷰 데이터의 평탄화 해제

{ 
    "PersonId": "12345" 
    , "CommonProp": "asdf" 
    , "DataForPerson": [ 
     { "Prop1": "prop 1 value A", "Prop2": "prop 2 value A" } 
     , { "Prop1": "prop 1 value B", "Prop2": "prop 2 value B" } 
    ] 
} 

뷰에서 들어오는 형식은 무엇인가 같다 :

PersonId CommonProp Prop1    Prop2 
12345  asdf   prop 1 value A prop 2 value A 
12345  asdf   prop 2 value B prop 2 value B 

가 어떻게이 일에 대해 갈 수 있나요? 내가 들어 왔 가장 가까운이 정확하지 않습니다, 분명히

{ 
    "PersonId": "12345" 
    , "CommonProp": "asdf" 
    , "DataForPerson": [ 
     { "Prop1": "prop 1 value A", "Prop2": "prop 2 value A" } 
    ] 
} { 
    "PersonId": "12345" 
    , "CommonProp": "asdf" 
    , "DataForPerson": [ 
     { "Prop1": "prop 1 value B", "Prop2": "prop 2 value B" } 
    ] 
} 

입니다. datamapper를 사용하여이 작업을 시도했지만 운이 없었습니다.

감사합니다.

편집 여기 흐름의 사진입니다 :

Mule Flow

여론 조사와 JDBC가 SELECT DISTINCT PERSON_ID FROM MY_VIEW이다. 각각의 경우, 한 사람당 하나의 JSON 호출을하기를 희망했습니다. 지금 웹 API 호출 대신 파일로 출력하고 있는데, 웹 API 호출을 시도했지만 올바른 JSON을 얻는 한 제대로 작동합니다.

+0

데이터 소스 유형은 CSV입니까? –

+0

아니요, 데이터 원본은 SQL Server보기입니다. –

+0

뮬 (Mule)의'List '이 맞습니까? –

답변

1

DataMapper 솔루션을 요청한 사실을 알고 있습니다. 대체 솔루션을 원할 경우 다음은 MEL 만 사용하는 것입니다.

<expression-component><![CDATA[ 
    payload = 
     [ 
     'PersonId': payload[0].PersonId, 
     'CommonProp': payload[0].CommonProp, 
     'DataForPerson': (['Prop1': $.Prop1, 'Prop2': $.Prop2] in payload) 
     ]; 
]]></expression-component> 

<json:object-to-json-transformer /> 
+0

이 작품은 @David Dossot입니다. DataMapper를 사용하여이를 수행 할 수있는 방법이 없다고 생각하십니까? –

+0

확실히 DataMapper를 사용할 수는 있지만 필자는 전문가가 아닙니다. 다른 누군가가 솔루션을 게시 할 수 있기를 바랍니다. Enterprise Edition 사용자이므로 MuleSoft의 전문 지원에 문의 할 수도 있습니다. –