JSON데이터 안에 urn:test:1.0:User로 되어있는 네임페이스를 XML로 매핑 변환하거나 반대로 XML → JSON으로 REST 어댑터 안에 옵션을 통해 변환할수 있는 방법에 대해 정리하였습니다.
실제로 사용해보진 않았지만 관련 사이트 내용들을 보면 이런 데이터에 대해 일반적으로 처리가 가능해 보입니다.
XML/JSON 네임스페이스 매핑 옵션은 REST Receiver 어댑터 > Data Format > Convert XML Payload to JSON 체크 > Enable Namespace Mapping 체크를 하면 보이는데 네임스페이스,배열,데이터타입 등에 대해 자동변환은 지원은 안되는걸로 확인이 됩니다.
해당 옵션을 사용하기 전에
SimpleTools의 JSON/XML 변환기를 통해 JSON과 XML 간 변화되는 데이터
를 미리 보시는것도 도움이 되실것 같습니다.
하나 예를 들어
여러 데이터 타입과 네임스페이스를 포함한 아래의 JSON데이터를
{ "root": [
"urn:test:params:test:schemas:core:1.0:User",
{"number" : 2023},
{"string" : "aaa"},
{"boolean" : false},
{"object" : {"AAA":"aaa","BBB":"bbb","CCC":"ccc"}},
{"array" : ["aa","bb","cc"]},
{"null" : null}
],
"string1" : "bbb",
"urn:test:params:test:schemas:extension:1.0:User":{
"number1" : "0329", "boolean1" : true
}
위 변환기를 통해 XML로 변환를 하면 아래와 같이 확인이 됩니다.
<?xml version="1.0" encoding="UTF-8"?><root> <root> <item>urn:test:params:test:schemas:core:1.0:User</item> <list> <number>2023</number> </list> <list> <string>aaa</string> </list> <list> <boolean/> </list> <list> <object> <aaa>aaa</aaa> <bbb>bbb</bbb> <ccc>ccc</ccc> </object> </list> <list> <array> <item>aa</item> <item>bb</item> <item>cc</item> </array> </list> <list> <null/> </list> </root> <string1>bbb</string1> <urntestparamstestschemasextension.0user> <number1>0329</number1> <boolean1>1</boolean1> </<urntestparamstestschemasextension.0user></root>이상하게 변환이 되긴 했는데 REST어댑터 옵션을 통해서는 다른 결과를 보실수 있을것 같은데 손이 많이 갈것 같습니다.
참고 노츠
2574843 - Missing namespace prefixes when converting JSON to XML
2175218 - New Feature: Enhanced XML/JSON conversion capabilities
댓글 없음:
댓글 쓰기