다음을 통해 공유


JSON을 XML로 변환

적용 대상: 모든 API Management 계층

json-to-xml 정책은 요청 또는 응답 본문을 JSON에서 XML로 변환합니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<json-to-xml 
    apply="always | content-type-json" 
    consider-accept-header="true | false" 
    parse-date="true | false" 
    namespace-separator="separator character"
    namespace-prefix="namespace prefix"
    attribute-block-name="name" />

특성

특성 설명 필수 항목 기본값
apply 속성은 다음 값 중 하나로 설정해야 합니다.

- always - 항상 변환을 적용합니다.
- content-type-json - 응답 Content-Type 헤더에서 JSON의 존재를 나타내는 경우에만 변환합니다.

정책 식이 허용됩니다.
해당 없음
consider-accept-header 속성은 다음 값 중 하나로 설정해야 합니다.

- true - 요청 Accept 헤더에서 XML을 요청하는 경우 변환을 적용합니다.
- false - 항상 변환을 적용합니다.

정책 식이 허용됩니다.
아니요 true
parse-date false로 설정하면 변환 중에 날짜 값이 복사됩니다. 정책 식은 허용되지 않습니다. 아니요 true
namespace-separator 네임스페이스 구분 기호로 사용할 문자 정책 식이 허용됩니다. 아니요 밑줄
네임스페이스 접두사 속성을 네임스페이스 특성(일반적으로 "xmlns")으로 식별하는 문자열입니다. 지정된 접두사로 시작하는 이름의 속성은 현재 요소에 네임스페이스 선언으로 추가됩니다. 정책 식이 허용됩니다. 아니요 해당 없음
attribute-block-name 설정하면 명명된 개체 내의 속성이 요소에 특성으로 추가됩니다. 정책 식이 허용됩니다. 아니요 설정 안 함

사용

예시

다음 정책을 고려합니다.

<policies>
    <inbound>
        <base />
    </inbound>
    <outbound>
        <base />
        <json-to-xml apply="always" consider-accept-header="false" parse-date="false" namespace-separator=":" namespace-prefix="xmlns" attribute-block-name="#attrs" />
    </outbound>
</policies>

백 엔드가 다음 JSON을 반환하는 경우:

{
  "soapenv:Envelope": {
    "xmlns:soapenv": "http://schemas.xmlsoap.org/soap/envelope/",
    "xmlns:v1": "http://localdomain.com/core/v1",
    "soapenv:Header": {},
    "soapenv:Body": {
      "v1:QueryList": {
        "#attrs": {
          "queryName": "test"
        },
        "v1:QueryItem": {
          "name": "dummy text"
        }
      }
    }
  }
}

클라이언트에 대한 XML 응답은 다음과 같습니다.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://localdomain.com/core/v1">
  <soapenv:Header />
  <soapenv:Body>
    <v1:QueryList queryName="test">
      <name>dummy text</name>
    </v1:QueryList>
  </soapenv:Body>
</soapenv:Envelope>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.