Transform (변환) 노드 가이드

입력 데이터를 사용자 정의 JSON 구조로 변환하는 노드입니다. JSON 템플릿 또는 JavaScript 코드를 사용하여 데이터를 원하는 형태로 가공할 수 있습니다.
주요 기능
JSON 템플릿을 사용한 선언적 데이터 변환
JavaScript 코드를 사용한 프로그래밍 방식 변환
표현식(
{{ $json.field }})으로 입력 데이터 참조중첩 객체 및 배열 인덱스 접근 지원
설정 항목
모드
모드 | 설명 |
|---|---|
템플릿 | JSON 템플릿에 표현식을 삽입하여 출력 구조를 정의합니다 |
JavaScript | JavaScript 코드를 작성하여 자유롭게 데이터를 변환합니다 |
템플릿 모드
필드 | 설명 |
|---|---|
JSON 템플릿 | 출력할 JSON 구조를 정의합니다. |
JavaScript 모드
필드 | 설명 |
|---|---|
JavaScript 코드 | 데이터를 변환하는 JavaScript 코드를 작성합니다. |
사용 예시
템플릿 모드: 데이터 구조 변환
API 응답 데이터를 다른 서비스에 맞는 형식으로 변환합니다.
입력:
{ "firstName": "길동", "lastName": "홍", "age": 30 }
JSON 템플릿:
{
"fullName": "{{$json.lastName}}{{$json.firstName}}",
"userAge": "{{$json.age}}",
"source": "workflow"
}
출력:
{ "fullName": "홍길동", "userAge": 30, "source": "workflow" }
템플릿 모드: 중첩 데이터 접근
입력:
{ "user": { "name": "홍길동" }, "items": ["A", "B", "C"] }
JSON 템플릿:
{
"name": "{{$json.user.name}}",
"firstItem": "{{$json.items[0]}}"
}
템플릿 모드: 계산식 사용
JSON 템플릿:
{
"total": "{{$json.price * $json.quantity}}",
"discounted": "{{$json.price * 0.9}}"
}
JavaScript 모드: 복잡한 변환
조건부 로직이나 반복 처리가 필요한 경우 JavaScript 코드를 사용합니다.
JavaScript 코드:
return {
id: $input.item.json.id,
name: $input.item.json.name.toUpperCase(),
tags: $input.item.json.tags.filter(t => t.length > 2),
processedAt: new Date().toISOString()
};
JavaScript 모드에서 사용 가능한 변수
변수 | 설명 |
|---|---|
| 현재 처리 중인 아이템 (json, binary 포함) |
| 현재 아이템의 JSON 데이터 ( |
| 현재 아이템의 JSON 데이터 (단축 참조) |
참고 사항
템플릿 모드에서 표현식 결과가 문자열이면 JSON 내에서 적절히 이스케이프 처리됩니다.
템플릿 모드에서 표현식 결과가 객체나 배열이면 JSON으로 직렬화되어 삽입됩니다.
템플릿의 최종 결과는 유효한 JSON이어야 합니다. 파싱에 실패하면 오류가 발생합니다.
JavaScript 모드에서는 반드시
return문으로 결과 객체를 반환해야 합니다.표현식이나 코드 실행 중 오류가 발생하면, 에러 시 계속(Continue On Fail) 옵션이 활성화된 경우 오류 메시지가 포함된 결과가 출력됩니다.