JSON Path
JSON으로 들어온 JSON 문자열에서, 경로로 지정한 하나의 값을 뽑아내어 출력합니다. HTTP Request의 Body를 그대로 받는 짝으로 사용합니다.
경로의 서식
오브젝트의 키는 .으로, 배열은 [n]으로 파고듭니다.
syncedLyrics— 최상위의 키[0].syncedLyrics— 배열의 첫 요소의 키data.items[2].name— 중첩
경로는 앞뒤의 공백을 떨어뜨린 다음에 사용됩니다. 경로를 비워 둔 채로 두면, JSON 전체가 그대로 Out으로 나옵니다.
경로는 노드 본체의 칸에 적거나, Path 포트로 흘려 넣거나 어느 쪽으로도 지정할 수 있습니다.
3가지 출력
Out— 뽑아낸 값이 문자열이면 그 내용. 오브젝트나 배열이면 JSON 텍스트 그대로 나오므로, 다음 단의 JSON Path로 더 파고들 수 있습니다. 수치·불리언 값은 그 문자 표기가 됩니다Number— 수치라면 그 값, 불리언 값이라면true가 1·false가 0이고, 수치로 읽을 수 있는 문자열도 수치가 됩니다. 그 외에는 0Found— 값을 얻을 수 있었는지 여부
3가지 모두 값이 지난번과 달라졌을 때만 출력됩니다.
얻지 못했을 때
다음 중 어느 경우에도, Out은 빈 문자·Number는 0·Found는 false가 됩니다. 무슨 일이 일어났는지는 노드의 작은 글자로 확인할 수 있습니다.
JSON이 비어 있거나, 공백뿐일 때- JSON으로 읽을 수 없는 문자열이 왔을 때(API가 에러 페이지의 HTML을 돌려준 경우 등)
- 경로의 서식이 올바르지 않을 때
- 경로가 가리키는 곳이 존재하지 않거나, 값이 null일 때
값을 얻었을 때는, 노드의 표시가 그 값의 종류로 바뀝니다.
입력 포트
| Port ID | 타입 |
|---|---|
JSON | string |
Path | string |
출력 포트
| Port ID | 타입 |
|---|---|
Out | string |
Number | float |
Found | bool |
스크립트에서 설정할 수 있는 멤버
| 경로 | 타입 |
|---|---|
jsonInput | string |
pathInput | string |
currentPath | string |
Synapse Apps (스크립팅)
await synapse.modules.create({ type: "JsonPath" }) 
