메시지 맵 에서 JSON 메시지를 그래픽으로 모델링

그래픽 데이터 맵핑 편집기에서 사용자 정의 추가 함수를 사용하여 JSON 오브젝트, JSON 배열 또는 둘 다를 포함하는 JSON 메시지를 작성할 수 있습니다.

태스크 정보

JSON 스키마 모델이 있는 경우 공유 라이브러리 또는 REST API의 맵에서 이를 사용할 수 있습니다. 자세한 정보는 JSON 스키마를 사용하여 JSON 메시지 작성 또는 변환을 참조하십시오. JSON 스키마 모델이 없는 경우 이 주제에서 설명한 대로 사전정의된 JSON 메시지를 선택하여 맵을 작성하고 사용자 정의 추가 함수를 사용하여 JSON 데이터를 정의할 수 있습니다.

참고: 메시지 본문에서 JSON 스키마 및 사용자 정의 요소를 둘 다 사용할 수 없습니다. 그러나 JSON 스키마에 의해 입력 메시지 본문이 정의되고, 사용자 정의 추가 함수를 사용하여 출력 메시지 또는 로컬 환경이 정의된 맵을 작성할 수 있습니다.

프로시저

스키마 모델이 없는 JSON 메시지를 작성하려면 다음 단계를 완료하십시오.

  1. 메시지 맵을 작성하십시오. 맵의 입력 또는 출력으로 다음 JSON 제공 모델 중 하나를 선택하십시오.
    • JSON(IBM 제공 JSON 오브젝트 메시지 모델) - JSON 오브젝트 메시지 작성
    • JSON(IBM 제공 JSON 배열 메시지 모델) - JSON 배열 메시지 작성

    자세한 정보는 메시지 맵 작성을 참조하십시오.

  2. 사용자 정의 추가 함수를 사용하여 데이터 요소 아래의 컨텐츠를 규정하십시오.
    JSON 메시지는 JSON 오브젝트라고 하는 이름-값 쌍 및 JSON 배열이라고 하는 값의 정렬된 콜렉션으로 구성됩니다.
    1. JSON 출력 메시지에서 JSON 오브젝트를 정의하려면 사용자 정의 추가 함수를 사용하여 요소를 추가하고 지원되는 단순 유형 중 하나를 선택하십시오. 자세한 정보는 메시지 맵에서 JSON 오브젝트를 그래픽으로 모델링을 참조하십시오.
    2. JSON 출력 메시지에서 JSON 배열을 정의하려면 사용자 정의 추가 함수를 사용하여 요소를 추가하고 해당 유형으로 JSONArray_Default 를 선택하십시오. 자세한 정보는 메시지 맵에서 JSON 배열을 그래픽으로 모델링을 참조하십시오.
    3. JSON 출력 메시지에서 다차원 JSON 배열을 정의하려면 사용자 정의 추가 함수를 사용하여 여러 요소를 추가하고 JSONArray_Default 를 유형으로 선택하십시오. 자세한 정보는 메시지 맵에서 다차원 JSON 배열을 그래픽으로 모델링을 참조하십시오.
    참고: 그래픽 데이터 맵핑 편집기 를 사용하여 JSON 메시지를 변환하는 경우 사용자 정의 추가 함수를 사용하여 정의하는 JSON 요소 이름이 이름 지정 요소의 XML 규칙에 따라 유효한지 확인하십시오. JSON은 XML보다 광범위한 문자를 허용합니다. 예를 들어, JSON 오브젝트는 @ 문자를 포함할 수 있지만 그래픽 데이터 맵핑 편집기 는 XML 또는 XPath에서 유효한 요소 이름만 허용합니다.
  3. 입력 및 출력 요소 사이에서 변환을 정의하십시오.
    • 지정 변환을 사용하여 입력 데이터를 사용하지 않고도 고정된 값을 설정하십시오.
    • 작성 변환을 사용하여 입력 데이터를 사용하지 않고도 빈 JSON 오브젝트 또는 NULL JSON 오브젝트를 작성하십시오.
    • 이동 변환을 사용하여 입력 요소 값을 출력 요소로 복사하십시오.
    • If 변환, 사용자 정의 변환 또는 XPath 변환을 사용하여 출력 요소 값을 판별하는 조건을 정의합니다.
    • 추가 변환, 그룹화 변환, For Each 변환, 조인 변환, 사용자 정의 변환 또는 XPath 변환을 사용하여 JSON 배열 값을 설정합니다.
    • 선택 변환 또는 데이터베이스 루틴 변환을 사용하여 데이터베이스 시스템에서 사용 가능한 데이터로 값을 설정합니다.
    • xs:type 변환을 사용하여 단순 입력 요소의 값을 특정 데이터 유형으로 캐스트합니다.
    • fn:type 함수를 사용하여 XPATH 2.0 함수를 통해 값을 설정합니다.
    • 사용자 정의 Java 변환을 사용하여 사용자 고유의 Java™ 코드를 입력하십시오.
    • 사용자 정의 ESQL 변환을 사용하여 고유한 ESQL 코드를 호출합니다.
    • 사용자 정의 XPath 변환을 함수 iib:nullValue()와 함께 사용하여 JSON 오브젝트를 NULL로 또는 JSON 배열을 NULL로 설정하십시오.

    자세한 정보는 변환 지정 (맵핑 조작)을 참조하십시오.

이 예는 메시지 맵 에서 다음 JSON 오브젝트 메시지를 모델링하는 방법을 보여줍니다.
{"element1":[{"Nam":"val1","Num":1},{"Nam":"val2","Num":2}]}
이 JSON 메시지를 정의하려면 다음을 수행해야 합니다.
  1. 유형이 JSONArray_Default인 사용자 정의 요소를 추가하고 해당 이름을 Message로 변경하십시오.
  2. 항목 의 유형을 익명으로 설정하십시오.
  3. 배열에서 오브젝트-값 요소를 나타내는 두 개의 요소를 추가하십시오. 맵에서 표시 이름은 오브젝트 이름을 표시합니다. 런타임 시 그래픽 데이터 맵핑 편집기 는 메시지에서 전달되는 오브젝트의 이름을 사용합니다.
다음 그림은 앞의 단계를 완료한 후의 맵을 표시합니다.

맵에 정의된 JSON 메시지를 표시하는 그림입니다.

JSON 메시지에 대한 메시지 트리는 다음 추적에서 설명합니다.

 (0x01000000:Object):JSON       = ( ['json' : 0x2f030fa0]
    (0x01000000:Object):Data = (
      (0x01001000:Array):element1 = (
        (0x01000000:Object):Item = (
          (0x03000000:NameValue):Nam = 'val1' (CHARACTER)
          (0x03000000:NameValue):Num = 1 (INTEGER)
        )
        (0x01000000:Object):Item = (
          (0x03000000:NameValue):Nam = 'val2' (CHARACTER)
          (0x03000000:NameValue):Num = 2 (INTEGER)
        )
      )
    )
  )
이 다른 예에서는 메시지 맵 에서 다음 JSON 배열 메시지를 모델링하는 방법을 보여줍니다.
[{"element1":{"field1":"Sweet","field2":"Flower"},"element2":"me@bbloggs.com"}]

맵에 정의된 JSON 배열 메시지를 표시하는 그림입니다.

JSON 배열 메시지에 대한 메시지 트리는 다음 추적에서 설명합니다.
  
(0x01000000:Object):JSON       = ( ['json' : 0x292051a0]
    (0x01001000:Array):Data = (
      (0x01000000:Object):Item = (
        (0x01000000:Object   ):element1 = (
          (0x03000000:NameValue):field1 = 'Sweet' (CHARACTER)
          (0x03000000:NameValue):field2 = 'Flower' (CHARACTER)
        )
        (0x03000000:NameValue):element2 = 'me@bbloggs.com' (CHARACTER)
      )
    )

다음 수행할 사항

메시지 맵 을 배치하고 출력 메시지가 올바른지 확인하십시오. 자세한 정보는 메시지 맵 문제점 해결을 참조하십시오.