2016-06-20 2 views
0

페이로드의 두 가지 필드에서 키 값 사전을 설정하고 싶습니다. 내 첫번째 생각은 구성 요소를 변환 및 동적 키를 설정 사용하는 것입니다,하지만이 코드는 작동하지 않습니다 Mule 변환 페이로드에서 동적 키 설정

%dw 1.0 
%output application/java 
--- 
{ 
    payload.objectnumber: payload.objectid 
} 

내가이 오류 :

Multiple markers at this line 
- Invalid input "payload.", expected conditionalKeyValuePair, 
    keyValuePair, enclosedExpr or objectEnd 
- no viable alternative at input 'payload' 
- no viable alternative at input '.' 

어떻게 작동하려면에 어떤 아이디어가?

입력 :

[{ 
    objectnumber: 75, 
    objectid: "abcdefgh" 
}] 

예상 출력 :

[{ 
    "abcdefgh": 75 
}] 
+1

입력 페이로드와 예상 출력을 게시 하시겠습니까? – star

+0

그래, 질문에 추가 하겠지만 꽤 간단하다. – CamJohnson26

답변

2

브래킷 변수를 (값)으로 설정하여 동적 키를 정의하십시오. 따라서 다음 코드를 사용해보십시오 :

%dw 1.0 
%output application/json 
--- 
payload map { 
    ($.objectid): $.objectnumber 
} 
+0

매력처럼 작동한다. 고마워! – CamJohnson26

1

는 시도 이죠에 아래 코드

<dw:transform-message metadata:id="b968b3ec-ed0a-492d-bf32-bcfe0d20e9d0" doc:name="Transform Message"> 
     <dw:set-payload><![CDATA[%dw 1.0 
     %output application/java 
     %var objectId = payload.objectid 
     --- 
     objectId :payload.objectnumber 
     ]]></dw:set-payload> 
    </dw:transform-message> 

JSON 입력 :

[ 
    { 
    "objectnumber":75, 
    "objectid":"abcdefgh" 
    } 
] 
관련 문제