[Linux] curl을 통한 응답값 예쁘게 출력하는 방법(jq라이브러리)
OS/Linux

[Linux] curl을 통한 응답값 예쁘게 출력하는 방법(jq라이브러리)

728x90
반응형

1. python -m json.tool 명령어 사용

curl <기존 명령어> | python -m json.tool

다음과 같이 예쁘게 출력되는 것을 볼 수 있다.

 

 

2. jq 라이브러리 사용

[사전 설치]

wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
mv jq-linux64 jq
chmod +x ./jq
sudo cp jq /usr/bin

 

예제) JSON이 다음과 같이 있을 때 사용결과

{
"name": "Google",
"location":
  {
    "street": "1600 Amphitheatre Parkway",
    "city": "Mountain View",
    "state": "California",
    "country": "US"
  },
"employees":
  [
    {
      "name": "Michael",
      "division": "Engineering"
    },
    {
      "name": "Laura",
      "division": "HR"
    },
    {
      "name": "Elise",
      "division": "Marketing"
    }
  ]
}
$ cat json.txt | jq '.name'
"Google"

$ cat json.txt | jq '.location.city'
"Mountain View"

$ cat json.txt | jq '.employees[0].name'
"Michael"

$ cat json.txt | jq '.location | {street, city}'
{
  "city": "Mountain View",
  "street": "1600 Amphitheatre Parkway"
}

 

 

ex1) 예쁘게 출력하기

curl <기존 명령어> | jq

 

ex2) 예쁘게 출력한 형식 파일로 새로쓰기

curl <기존 명령어> | jq > result.json

 

ex3) 출력형식에서 원하는 값만 변수로 저장(-r옵션은 큰따옴표 제거)

TOKEN=`cat result.json | jq -r '.access.token.id'`

 

*참고

https://taetaetae.github.io/2017/02/28/shell-script-json/

728x90
728x90