타사 도구와 통합할 때, 이러한 도구에서 데이터를 가져와서 세부적인 워크플로우를 정의하고 구성하고 싶을 수 있습니다. JSON 파서 노드를 사용하면 통합한 모든 도구에서 정보를 파싱하고 이를 Freshservice에서 워크플로우를 더 잘 정의하는 데 사용할 수 있습니다.
JSON 파서 노드란 무엇인가요?
JSON 파서 노드는 워크플로우 컨텍스트 내에서 JSON 페이로드를 파싱하고, 다음 조건 및 작업과 함께 출력을 사용할 수 있게 해줍니다.
JSON 파서 노드를 사용하면 오케스트레이션 앱 및 웹 요청 노드에서 응답을 캡처하여 워크플로우 조건 및 작업 내에서 사용할 수 있습니다.
JSONPath
JSONPath는 쿼리 언어 로서 JSON을 위한 것입니다. 출력은 JSON 경로 표현식을 사용하여 자동으로 생성되거나 수동으로 구성할 수 있습니다.
JSONPath 표현식은 JSON 구조 내의 요소(또는 요소 집합)에 대한 경로를 지정합니다. 경로는 점 표기법을 사용할 수 있습니다. 선행 $ 는 루트 객체를 나타냅니다.
예: $.Address.city.name 는 위의 페이로드에서 벵갈루루를 나타냅니다.
다른 JSON 요소는 아래에 샘플 티켓 페이로드와 함께 설명되어 있습니다.
{
"ticket":{
"priority":3,
"requester_id":1000000678,
"source":2,
"status":2,
"subject":"Ticket Title",
"id":266,
"type":"Incident"
"assets": [
{
"name": "Logitech Mouse",
"ci_type_id": 27000336397,
"impact": 2
},
{
"name": "Dell Monitor",
"ci_type_id": 27000336384,
"impact": 1
},
]
}
}
표현식
설명
예시
출력
$
루트 객체 또는 배열.
$.ticket 는 루트 경로에서
객체 "ticket"을 나타냅니다.
티켓의 모든 직접 속성.
{
"priority":3,
"requester_id":1000000678,
"source":2,
"status":2,
"subject":"Ticket Title",
"id":266,
"type":"Incident"
"assets": [
{
"name": "Logitech Mouse",
"ci_type_id": 27000336397,
"impact": 2
},
{
"name": "Dell Monitor",
"ci_type_id": 27000336384,
"impact": 1
},
]
}
.property
부모 객체에서 지정된 속성을 선택합니다.
$.ticket.priority 는 티켓의 우선순위를 나타냅니다.
티켓의 우선순위
결과: 1
[n]
배열에서 n번째 요소를 선택합니다. 인덱스는 0부터 시작합니다.
$.ticket.assets[0] 는 티켓과 연결된 첫 번째 자산을 나타냅니다.
티켓과 연결된 첫 번째 자산의 속성. {
"name": "Logitech Mouse",
"ci_type_id": 27000336397,
"impact": 2
}
..property
재귀적 하강: 지정된 속성 이름을 재귀적으로 검색하고 이 속성 이름을 가진 모든 값의 배열을 반환합니다. 속성이 하나만 발견되더라도 항상 목록을 반환합니다.
$.ticket.assets[*]
$..assets[*] 두 표현식 모두 티켓과 연결된 모든 자산의 목록을 제공합니다.
티켓과 연결된 모든 자산.
[
{
"name": "Logitech Mouse",
"ci_type_id": 27000336397,
"impact": 2
},
{
"name": "Dell Monitor",
"ci_type_id": 27000336384,
"impact": 1
},
]
*
와일드카드 표현식은 * 또는 [*]의 표현식입니다. 와일드카드 연산자는 이름에 관계없이 모든 객체 또는 요소를 반환합니다.
$.ticket.assets[*] 는 티켓과 연결된 모든 자산을 나타냅니다.
티켓과 연결된 모든 자산.
[
{
"name": "Logitech Mouse",
"ci_type_id": 27000336397,
"impact": 2
},
{
"name": "Dell Monitor",
"ci_type_id": 27000336384,
"impact": 1
},
]
[start:end]
[start:]
시작 인덱스부터 끝 인덱스까지(끝 인덱스는 포함하지 않음) 배열 요소를 선택합니다. 끝이 생략되면 시작부터 배열의 끝까지 모든 요소를 선택합니다.
$..assets[0,1].name
$..assets[:2].name 두
표현식은 첫 번째 두 자산의 이름을 나타냅니다.
티켓과 연결된 첫 번째 두 자산의 이름.
[
"Logitech Mouse",
"Dell Monitor"
]
[?(expression)]
? ( )를 사용하여 특정 기준을 충족하는 모든 항목을 쿼리합니다.
$.ticket.assets[?(@.impact<2)].name 는 영향이 2 미만인 티켓의 자산 이름을 나타냅니다
영향이 2 미만인(낮음) 자산.
결과: Dell Monitor
@
필터 표현식에서 현재 객체 또는 요소를 참조합니다.
$..assets[?(@.impact=2)] 는 중간 영향을 가진 모든 자산을 나타냅니다.