2016-09-14 5 views
0

JSON 문자열 안의 값을 읽으려고합니다.JSON을 Mule로 파싱 하시겠습니까?

은 getValue에서 페이로드로 간단

: { '결과': 'NEW_VALUE'} 나는 그것이 인쇄 결과를 기록 할 때

내 코드는 다음과 같습니다

<enricher target="#[flowVars.new_value]" source="#[json:result]"> 

    <flow-ref name="getValue" /> 

</enricher> 

    <logger doc:name="Logger" level="INFO" 
    message="new value #[flowVars.new_value]" /> 

<flow name="getValue"> 

    <http:request config-ref="http-request-tts" path="get_value" method="POST"> 
     </http:request> 

    <!-- Here the payload is of type org.glassfish.grizzly.utils.BufferInputStream --> 

    <object-to-string-transformer/> 
    <json:object-to-json-transformer /> 

    </flow> 

답변

1

당신은 enricher에서 다음을 수행 할 필요가 <object-to-string-transformer/> http:request
제거 : -

<enricher target="#[flowVars.new_value]" source="#[message.payload.result]" doc:name="Message Enricher"> 
     <processor-chain doc:name="Processor Chain"> 
      <flow-ref name="getValue" doc:name="Flow Reference"/> 
      <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" /> 
     </processor-chain> 
</enricher> 
<logger doc:name="Logger" level="INFO" message="authorization_token #[flowVars.new_value]" /> 

하지만 기억, 당신의 JSON은 형식 없어야한다 : - { "result": "new_value"}하지 { 'result': 'new_value' }

+0

내가 시도했지만 않고 내가 오류가 발생 객체에 문자열 : 클래스 org.glassfish.grizzly.utils를 찾지 시리얼 .BufferInputStream 및 BeanSerializer (예외 발생을 방지하기 위해 SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS 비활성화)를 생성하기 위해 발견 된 속성 없음) (org.codehaus.jackson.map.JsonMappingException). 메시지 페이로드 유형은 BufferInputStream (org.mule.api.transformer.TransformerMessagingException)입니다. 메시지 페이로드 유형은 다음과 같습니다. BufferInputStream –

+0

object-to-string을 제거하지 않고 작동합니다! 감사! –

관련 문제