2017-11-02 1 views
-4
WSO2 ESB에서이 같은 응답 형식

에 응답 본문을받을 수 있나요?어떻게 WSO2 ESB

<cookie>yummy</cookie> 
<product>YM11</product> 
<place>US</place> 

목표는 같은 JSON 객체의 XML을 변환하는 것입니다 당신은 payloadFactory을 사용할 수 있습니다

{ 
"cookie": "yummy", 
"product": "YM11", 
"place": "US" 
} 
+0

맛있는 당신의 JSON 개체를 직접 구축하는 것입니다 – Nicolas

답변

0

다음

<payloadFactory media-type="xml"> 
    <format> 
    <jsonObject> 
     <cookie>$1</cookie> 
     <product>$2</product> 
     <place>$3</place> 
    </jsonObject> 
    </format> 
    <args> 
    <arg evaluator="xml" expression="//cookie"/> 
    <arg evaluator="xml" expression="//product"/> 
    <arg evaluator="xml" expression="//place"/> 
    </args> 
</payloadFactory> 

하지만 당신은 바깥 쪽 요소의 경우 필요 이미 주석 귀하의 XML은 단순히 유효하지 않습니다. 목표가 Json을 출력하는 것이라면이 요소는 jsonObject (여기에서 자세한 정보를 찾으십시오 : https://docs.wso2.com/display/EI600/JSON+Support)라고해야합니다. 당신이 XML이 필요하지 않은 경우

가장 좋은 방법은 YM11 미국 , 당신은 "컨테이너"를 유효 필요로하지 않는다

<payloadFactory media-type="json"> 
    <format> 
    { 
     "cookie": $1, 
     "product": $2, 
     "place": $3 
    } 
    </format> 
    <args> 
    <arg evaluator="xml" expression="//cookie"/> 
    <arg evaluator="xml" expression="//product"/> 
    <arg evaluator="xml" expression="//place"/> 
    </args> 
</payloadFactory> 
+0

페이로드는 이미 변경했지만 응답은 동일합니다 .... 응답 요소를 제거 할 수 없으므로. 내가 응답 요소를 제거하면 는 페이로드는 같은 제품을 변경하고 장소는 제거합니다 : \t $ (1) <인수 평가 = "xml"expression = "$ ctx : cookie"/> Amanda

+0

정확히 내가 처음에 대답 한 이유는 요 ur xml이 유효하지 않습니다. 이것을 달성 할 수 없습니다. enclosing 요소가 필요합니다. – Nicolas

+0

응답 요소가 payloadFactory에 포함되어야한다는 것을 알고 있습니다. 하지만 응답 요소를 제거 할 수 있기를 바랍니다 ... WSO2에서 어떤 아이디어가 있습니까? 원래 형식 : { "응답": { "쿠키"맛있는, "제품": "YM11" "나는 XML 응답 요소를 제거하고 JSON 형식을 전환하려는 때문에 은 아래에있는 내 예입니다 장소 ": 미국, } } 나는이 같은 JSON 형식으로 얻을 수 있기를 바랍니다 : { "쿠키 "맛있는, "제품 ":"YM11 " "장소 ": 미국, } 감사합니다. – Amanda