Unix 쉘 스크립트에서 읽을 수 있는 JSON 형식으로 컬 출력 표시
Unix 쉘 스크립트에서 curl 명령어를 실행하면 다음과 같이 결과가 표시되고 파일로 리디렉션됩니다.
{"type":"Show","id":"123","title":"name","description":"Funny","channelTitle":"ifood.tv","lastUpdateTimestamp":"2014-04-20T20:34:59","numOfVideos":"15"}
단, 이 출력은 다음과 같은 JSON 형식으로 파일에 입력해 주었으면 합니다.
{"type":"Show",
"id":"123",
"title":"name",
"description":"Funny",
"channelTitle":"ifood.tv",
"lastUpdateTimestamp":"2014-04-20T20:34:59",
"numOfVideos":"15"}
출력 포맷은 어떻게 하면 됩니까?
선택할 수 있는 솔루션:
json_pp: Linux 시스템에서 JSON 디코딩/인코딩에 사용할 수 있는 명령어 유틸리티
echo '{"type":"Bar","id":"1","title":"Foo"}' | json_pp -json_opt pretty,canonical
{
"id" : "1",
"title" : "Foo",
"type" : "Bar"
}
보관하는 것이 좋을지도 모릅니다.-json_opt pretty,canonical
예측 가능한 순서에 대한 인수입니다.
jq: 가볍고 유연한 명령줄 JSON 프로세서.이는 휴대용 C로 작성되며 런타임 의존성이 없습니다.
echo '{"type":"Bar","id":"1","title":"Foo"}' | jq '.'
{
"type": "Bar",
"id": "1",
"title": "Foo"
}
가장 심플한jq
program은 다음과 같은 표현입니다..
이 명령어는 입력을 받아 출력으로 변경되지 않습니다.
python 포함:
echo '{"type":"Bar","id":"1","title":"Foo"}' | python -m json.tool
{
"id": "1",
"title": "Foo",
"type": "Bar"
}
echo '{"type":"Bar","id":"1","title":"Foo"}' | node -e "console.log( JSON.stringify( JSON.parse(require('fs').readFileSync(0) ), 0, 1 ))"
{
"type": "Bar",
"id": "1",
"title": "Foo"
}
당신은 JSON의 출력을 예쁘게 하고 싶은 것 같습니다.python을 사용하면 가능합니다.
curl http://localhost:8880/test.json | python -mjson.tool > out.json
이것은 Gilles의 대답에 더하기 위해서이다.이 작업을 수행하는 방법은 여러 가지가 있지만, 저는 개인적으로 가볍고 기억하기 쉽고 보편적으로 사용할 수 있는 것(예를 들어 선호하는 Linux 플레이버의 표준 LTS 설치 또는 설치가 용이한 것)을 *nix 시스템에 원합니다.
다음은 선호하는 순서대로 제공되는 옵션입니다.
Python Json.tool 모듈
echo '{"foo": "lorem", "bar": "ipsum"}' | python -mjson.tool
장점: 거의 모든 곳에서 이용 가능; 단점: 색상 구분 없음
jq (1회 설치가 필요할 수 있음)
echo '{"foo": "lorem", "bar": "ipsum"}' | jq
단점: jq를 설치해야 합니다.장점: 컬러 코딩과 범용성
json_pp (Ubuntu 16.04 LTS에서 사용 가능)
echo '{"foo": "lorem", "bar": "ipsum"}' | json_pp
Ruby 사용자용
gem install jsonpretty
echo '{"foo": "lorem", "bar": "ipsum"}' | jsonpretty
npm i -g json
그럼 간단하게 추가해 주세요.| json
애프터 컬 curl http://localhost:8880/test.json | json
python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool
도움이 됩니다.
jq를 설치하고 다음과 같이 쿼리를 작성할 수 있습니다.
curl http://localhost:8080/observations/station/221 | jq
json_reformat이 매우 편리하다는 것을 알았습니다.그래서 저는 다음과 같이 했습니다.
curl http://127.0.0.1:5000/people/api.json | json_reformat
바로 그거야!
동기:컬 명령 요청 후 JSON 응답을 예쁘게 인쇄하려고 합니다.
해결책: json_pp - 일부 입력 형식과 출력 형식(그 중 하나가 JSON) 간에 변환하는 명령줄 도구입니다).이 프로그램은 json_xs에서 복사되어 수정되었습니다.기본 입력 형식은 json이고 기본 출력 형식은 pretty 옵션을 포함한 json입니다.
동기: json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]
공식:<someCommand> | json_pp
예:
부탁한다
curl -X https://jsonplaceholder.typicode.com/todos/1 | json_pp
대답
{
"completed" : false,
"id" : 1,
"title" : "delectus aut autem",
"userId" : 1
}
curljson 확인
$ pip install curljson
$ curljson -i <the-json-api-url>
포맷과는 별도로 훨씬 더 많은 기능(슬라이스, 필터, 맵 및 변환 구조)을 제공합니다.
https://stedolan.github.io/jq/
xidel의 경우:
curl <...> | xidel - -se '$json'
xidel
JSON이라고 합니다.
언급URL : https://stackoverflow.com/questions/27238411/display-curl-output-in-readable-json-format-in-unix-shell-script
'programing' 카테고리의 다른 글
CSS 모듈 및 리액트를 사용한 여러 클래스 이름 (0) | 2023.03.29 |
---|---|
.env 파일 변수를 웹 팩 구성에 전달하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
연결 문자열에서 서비스 이름 대신 SID를 사용하면 cx_Oracle이 연결되지 않음 (0) | 2023.03.29 |
일부 유명 프로그램이 항상 인쇄를 사용하는 이유 (0) | 2023.03.29 |
브라우저 콘솔에서 앵귤러 함수를 호출하다 (0) | 2023.03.19 |