GN⁺: Show HN: jnv: jq를 사용한 인터랙티브 JSON 필터
(github.com/ynqa)-
JSON 탐색을 위한 jnv_jnv_
- jnv_jnv_는 인터랙티브한 JSON 뷰어와
jq
필터 편집기를 제공함. - jid와 jiq에 영감을 받아 설계됨.
- jnv_jnv_는 인터랙티브한 JSON 뷰어와
-
기능
- JSON 구문 강조 기능을 포함한 인터랙티브 JSON 뷰어 및
jq
필터 편집기. - 표준 입력(stdin), 파일, URL에서 JSON을 받아올 수 있음.
- 필터 자동 완성 기능 지원.
- 지원하는 필터 유형: Identity, Object Identifier-Index, Array Index.
- 필터 평가를 위한 힌트 메시지 제공.
- JSON 구문 강조 기능을 포함한 인터랙티브 JSON 뷰어 및
-
설치 방법
- Homebrew를 통한 설치:
brew install ynqa/tap/jnv
- Cargo를 통한 설치:
- 필요 요구 사항: automake
- 설치 명령어:
cargo install jnv
- jnv는 사용자가 시스템에
jq
를 설치할 필요가 없음. Rust 바인딩인 j9을 활용하기 때문.
- Homebrew를 통한 설치:
-
예시
- 파일에서 읽기:
jnv data.json
- 표준 입력에서 읽기:
cat data.json | jnv
- 파일에서 읽기:
-
키맵
-
Ctrl + C
: jnv 종료 -
Tab
: jq 필터 자동 완성 - 화살표 키 및
Ctrl
조합: 커서 이동 및 필터 문자 삭제 -
Enter
: JSON 뷰어에서 확장/축소 토글 -
Ctrl + P/N
: JSON 뷰어에서 모든 접힘 확장/축소
-
-
사용법
- jq를 활용한 JSON 탐색기 및 인터랙티브 필터.
- 사용 예:
jnv [OPTIONS] [INPUT]
- 옵션:
- 편집 모드 지정: "insert" 또는 "overwrite"
- JSON 표시 형식 조정: 들여쓰기 수준 변경
- 힌트 표시 여부: 사용자에게 제안이나 가이드를 제공하는 힌트 표시 여부
- 초기 확장 깊이 지정: JSON 노드의 초기 확장 깊이
- 제안 목록 길이 제어: 사용자가 선택을 더 효율적으로 할 수 있도록 제안 목록의 길이 조정
GN⁺의 의견
- jnv_jnv_는 JSON 데이터를 쉽게 탐색하고 필터링할 수 있게 해주는 도구로, 특히 대규모 데이터셋을 다루는 개발자에게 유용함.
- 이 도구는
jq
의 강력한 기능을 사용자 친화적인 인터페이스로 제공하여 JSON 데이터 처리를 더욱 효율적으로 만듦. - jnv_jnv_는 Rust로 구현되어 있어 성능과 안정성 측면에서 이점을 가질 수 있으며, 시스템에
jq
를 별도로 설치할 필요가 없는 것도 장점임. - 비슷한 기능을 제공하는 다른 도구로는 Postman이나 Insomnia와 같은 API 테스팅 도구가 있으나, 이들은 주로 API 테스트에 초점을 맞추고 있어 jnv_jnv_처럼 순수한 JSON 탐색에는 덜 특화되어 있음.
- jnv_jnv_를 도입할 때는 사용자 인터페이스의 직관성과 필터링 기능의 한계를 고려해야 하며, 복잡한 JSON 처리가 필요한 경우
jq
스크립트를 별도로 학습할 필요가 있을 수 있음.
Hacker News 의견
-
매우 멋짐, 약간의 지적:
- 중간 크기의 JSON(16MB)에 대해 매우 느림
- 글꼴이 너무 어두움 (PR 제출함)
- 성능이 좋은 대안을 찾던 중, jq 기능은 없지만 빠른 JSON 뷰어인 fx를 발견함 (fx.wtf)
-
정말 흥미로워 보임 - 꼭 확인해볼 것임.
- 지금까지 jq와 up을 사용해 인터랙티브 쿼리를 해왔지만, up의 UX가 마음에 들지 않음 (특히 긴 쿼리나 비ASCII 데이터에 대해)
- 대체제를 찾는 데 관심이 많음
-
정말 멋짐!! 랩톱을 쥐는 대로 설치할 것임.
- 비슷한 것을 만들었기 때문에 글에 즉시 끌림
- CLI에서 더 많은 명령어들이 인터랙티브 인터페이스를 가질 수 있도록 아이디어를 일반화하는 것이 가능한지 궁금함
- "커맨드 빌더"를 오랫동안 상상해왔는데, 커서 위치에 따라 적절한 문서를 불러와 커맨드 라인을 편집하면서 보여줄 수 있음
-
정말 멋짐! jless와 매우 비슷해 보임.
-
때때로 브라우저나 IDE에서 JSON 출력 내에서 검색할 수 있으면 좋겠다는 생각을 함.
- 하지만 문제가 시간을 투자할 만큼 시급하지는 않음
-
Emacs를 사용한다면 jq-mode도 있음.
- 하지만 jnv의 필터 자동완성 기능이 정말 좋은 킬러 기능임
- jq-mode
-
정말 멋짐, jq를 사용할 때 항상 답답했던 점은 데이터를 검색하기 전까지 어떤 데이터를 얻게 될지 볼 수 없다는 것임.
-
Sublime Text를 사용한다면, 그것을 가능하게 하는 플러그인이 있음.
- 주의: 그 플러그인을 얼마 전에 작성함
- Jq 플러그인
-
대안인 "fx"에 대해 모두가 알았으면 함.
- map, filter, reduce 등 더 많은 것을 할 수 있고, 이미 알고 있는 것에 더 가까운 의미를 가짐
- YAML도 지원함
- fx 시작하기
-
매우 멋짐. 너무 과한 부탁인지 모르겠지만, jq 구문 대신 JSONPath를 사용하는 OjG와도 작동하도록 적용할 수 있을까?
- 도와줄 의향이 있음
- 만약 무례했다면 사과함