2016-05-31 2 views
1

StAXON을 사용하여 XML 페이로드를 JSON으로 변환 할 때 변환 할 때 autoPrimitive(true) 속성을 따르지 않도록 특정 노드에 플래그를 지정할 수 있습니까?StAXON - autoPrimitive가 true 일 때 특정 값을 문자열로 지정합니다.

좀 XML이 :

<root> 
    <foo>1234</foo> <!-- foo should always be String --> 
    <bar>5678</bar> <!-- bar should always be Integer --> 
</root> 

을 그리고 난 다음 JSON으로 변환 할 :

{ 
    "foo": "1234", // Note: this value is a String 
    "bar": 5678 // autoPrimitive setting has caused a type conversion 
} 

내가 처리 할 때 나는 XML 처리 명령 <? xml-multiple myNode ?>을 사용할 수 있음을 알고 있어요 배열을 사용하면 XML의 특정 노드가 해당 기본 유형으로 자동 변환되지 않도록 할 수있는 비슷한 기능이 있습니까? 내가 겪고있는 문제는 foobar이 값 때문에 숫자로 변환된다는 것입니다.

참고로 XML-> JSON 및 JSON-> XML 변환을 처리 할 때 StAXON 라이브러리를 사용하는 WSO2의 ESB 4.9.0을 사용하려고합니다.

답변

2

이렇게 변환해야하는 경우 각 노드에 플래그를 지정할 수 없습니다. 당신은 세계적으로 다음을 설정하여

열기 ESB_HOME/저장소/conf의/synapse.properties을 autoPrimitives을 해제하고, 감사를

synapse.commons.json.json.output.autoPrimitive=false 
+0

확인을 설정할 수 있습니다. 이 설정을 변경하면 JSON에서 항상 숫자 값을 원할 때 어떤 일이 발생합니까? 예를 들어 ID 란 필드가 있으므로 항상 숫자로 나타내야합니다. –

+0

AFAIK는 불가능합니다. 이것을 설정하면 숫자는 항상 문자열로 변환됩니다. –