programing

Unix 쉘 스크립트에서 읽을 수 있는 JSON 형식으로 컬 출력 표시

minimums 2023. 3. 29. 21:20
반응형

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예측 가능한 순서에 대한 인수입니다.


: 가볍고 유연한 명령줄 JSON 프로세서.이는 휴대용 C로 작성되며 런타임 의존성이 없습니다.

echo '{"type":"Bar","id":"1","title":"Foo"}' | jq '.'
{
  "type": "Bar",
  "id": "1",
  "title": "Foo"
}

가장 심플한jqprogram은 다음과 같은 표현입니다..이 명령어는 입력을 받아 출력으로 변경되지 않습니다.

추가 정보용jq옵션 매뉴얼 확인


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

json 노드 모듈을 사용할 수 있습니다.

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/

의 경우:

curl <...> | xidel - -se '$json'

xidelJSON이라고 합니다.

언급URL : https://stackoverflow.com/questions/27238411/display-curl-output-in-readable-json-format-in-unix-shell-script

반응형