2016-07-29 7 views
0

나는이 같은 CSV이 있습니다중첩 된 CSV - 뮬 DataWeave

data1,data2,data3;dataa;datab;datac;datax,datay,dataz 
data1,data2,data3;dataa;datab;datac;datax,datay,dataz 
data1,data2,data3;dataa;datab;datac;datax,datay,dataz 

내가 라인으로 레코드 라인을 처리 할 수 ​​spliter를 사용, 더 내가 splitBy를 사용 ","dataweave의지도에 기록을 변환 할 수 있습니다. 그러나 ";"에 대한 또 다른 수준의 분리를 어떻게 할 수 있습니까? ? SplitBy는 muliple 구분 기호가 데이터 매브에서 CSV 형식을 사용하도록 허용하지 않습니다.

{ 
    "1":"data1", 
    "2":"data2", 
    "3":{ 
     "a":"dataa", 
     "b":"datab", 
     "c":"datac" 
    }, 
    "x":"datax", 
    "y":"datay", 
    "z":"dataz " 
} 

어떤 생각 :

는 궁극적으로,이 같은 JSON을 줄까?

+0

예상 JSON (A 분배기를 사용하지 않음) 결과가 유효하지 않습니다. 이런 뜻이야? { "1": 「DATA1」 "2": "DATA2」 "3 "{ "A ":"의 dataa " "B ":"datab " "C "를 : "datac" }, "x": "datax", "y": "datay", "z": "dataz" } –

+0

죄송합니다. 그래 네가 맞아 . – gnanagurus

답변

1

JSON 예제의 구조가 잘못되었습니다. 이 JSON에서 네 번째 요소는 개체이며 키, 값만 있습니다 ... 우선 JSON의 유효성을 검사해야합니다. 유효한 JSON의 예 : u는 당신의 JSON의 유효성을 검사 할 때 enter image description here

, 내가 JSON에 CSV 데이터를 convering에 도움을하려고합니다.

+0

데이터를 수정했습니다. 지금 살펴볼 수 있습니까? – gnanagurus

3

는 다음 DataWeave 코드를보십시오 :

%dw 1.0 
%output application/json 
--- 
payload map { 
    "1": $[0], 
    "2": $[1], 
    "3": using (detail = $[2] splitBy ";") { 
     a: detail[1], 
     b: detail[2], 
     c: detail[3] 
    }, 
    x: $[3], 
    y: $[4], 
    z: $[5] 
} 

참고 :

  • 내가 datacdatax 별도의 입력 데이터를 수정했습니다. , 예와 ; 문자를 대체합니다 ...;datab;datac,datax,...
  • 을 나는 CSV 파일을 읽을 수 파일 커넥터를 사용하고, 직접 DataWeave 변압기를 처리
+0

주로 스플리터를 사용하기 때문에 레코드를 한 줄씩 나눕니다. 또한 데이터 위브를 사용하여 레코드를 처리합니다. 그러나 귀하의 추천에 따라, 나는 동일한 달성 할 수 있습니까? 데이터 직조로 스트리밍을 처리 할 수 ​​있습니까? 기본적으로 파일 크기는 사용 사례에서 확실하지 않습니다. – gnanagurus