JMESPath로 JSON 쿼리하기#
JMESPath는 JSON 문서에서 요소를 추출하고 변환하는 데 사용할 수 있는 JSON 쿼리 언어입니다. JMESPath 사용 방법에 대한 자세한 내용은 JMESPath 문서를 참조하십시오.
jmespath()
메서드#
n8n은 jmespath()
라는 사용자 정의 메서드를 제공합니다. 이 메서드를 사용하여 JMESPath 쿼리 언어를 사용하여 JSON 객체를 검색할 수 있습니다.
기본 구문은 다음과 같습니다:
1 |
|
1 |
|
메서드가 수행하는 작업을 이해하는 데 도움이 되는 동등한 더 긴 JavaScript는 다음과 같습니다:
1 2 |
|
표현식은 단일 행이어야 합니다
더 긴 코드 예제는 표현식에서는 작동하지 않으며, 표현식은 반드시 단일 행이어야 합니다.
object
는 이전 노드의 출력과 같은 JSON 객체입니다. searchString
은 JMESPath 쿼리 언어로 작성된 표현식입니다. JMESPath 명세는 지원되는 표현식 목록을 제공하며, 자습서와 예제는 대화형 예제를 제공합니다.
검색 매개변수 순서
JMESPath 명세의 예제는 search(searchString, object)
패턴을 따릅니다. n8n이 사용하는 JMESPath JavaScript 라이브러리는 대신 search(object, searchString)
을 지원합니다. 즉, JMESPath 문서의 예제를 사용할 때 검색 함수 매개변수의 순서를 변경해야 할 수도 있습니다.
일반 작업들#
이 섹션에서는 일반적인 작업에 대한 예제를 제공합니다. 더 많은 예제와 자세한 지침은 JMESPath의 자체 문서에서 확인할 수 있습니다.
이 예제를 시도할 때 코드 노드의 모드를 각 항목에 대해 한 번 실행으로 설정해야 합니다.
프로젝션으로 요소의 컬렉션에 JMESPath 표현식 적용하기#
JMESPath 프로젝션 문서에서 다음과 같습니다:
프로젝션은 JMESPath의 핵심 기능 중 하나입니다. 이를 사용하여 요소의 컬렉션에 표현식을 적용합니다. JMESPath는 다음과 같은 다섯 가지 종류의 프로젝션을 지원합니다:
- 리스트 프로젝션
- 슬라이스 프로젝션
- 객체 프로젝션
- 플래튼 프로젝션
- 필터 프로젝션
다음 예제는 리스트, 슬라이스 및 객체 프로젝션의 기본 사용법을 보여줍니다. 각 프로젝션 유형에 대한 자세한 설명 및 더 많은 예제는 JMESPath 프로젝션 문서를 참조하십시오.
웹훅 노드에서 다음과 같은 JSON이 주어졌을 때:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
모든 사람의 이름을 포함하는 리스트를 가져옵니다:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
첫 번째 이름의 슬라이스를 가져옵니다:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
개체 프로젝션을 사용하여 개의 나이를 나열합니다 객체 프로젝션:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
여러 요소 선택 및 새 목록 또는 객체 생성#
Multiselect를 사용하여 JSON 객체에서 요소를 선택하고 이를 새 목록 또는 객체로 결합합니다.
다음은 웹훅 노드에서 가져온 JSON입니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
첫 번째 및 마지막 이름을 가져오고 두 이름을 포함하는 새 목록을 생성하려면 multiselect 목록을 사용하십시오:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
표현식에서 화살표 함수의 대안#
예를 들어, 다음 코드를 코드 노드에서 반환하여 입력 데이터를 생성할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
"이름이 Lenovo인 항목을 찾아 그들의 카테고리 ID를 알려주세요."와 같은 검색을 수행할 수 있습니다.
1 |
|