컬이 반환한 JSON 문서에서 값 추출

컬이 반환한 JSON 문서에서 값 추출

주문하다

curl "https://tools.keycdn.com/geo.json?host={18.205.6.240}"

다음 JSON 문서를 반환합니다.

{"status":"success","description":"Data successfully received.","data":{"geo":{"host":"18.205.6.240","ip":"18.205.6.240","rdns":"ec2-18-205-6-240.compute-1.amazonaws.com","asn":14618,"isp":"AMAZON-AES","country_name":"United States","country_code":"US","region_name":"Virginia","region_code":"VA","city":"Ashburn","postal_code":"20149","continent_name":"North America","continent_code":"NA","latitude":39.0469,"longitude":-77.4903,"metro_code":511,"timezone":"America\/New_York","datetime":"2022-06-17 10:44:39"}}}

이 출력에서 country_name​​.

답변1

$ curl -s 'https://tools.keycdn.com/geo.json?host={18.205.6.240}' | jq -r '.data.geo.country_name'
United States

jq표현식은 를 .data.geo.country_name사용하여 액세스한 엔드포인트에서 반환된 JSON 문서에서 지정된 항목을 추출합니다 curl.

답변2

다음 버전도 사용할 수 있는 경우: REST API 출력은 다음과 같습니다.

{
  "error": "none",
  "message": "Success",
  "data": {
    "name": "Vishal Biradar",
    "userId": 1,
  }
}

다음은 읽는 방법을 보여주는 스크립트 코드입니다.

#!/bin/bash
LOGIN_DATA=$(\
    curl -d "[email protected]&password=abcd123" \
    http://localhost:1234/login \
    | python -c "import sys, json; print json.load(sys.stdin)['data']['name']"\
)
echo "LOGIN_DATA=$LOGIN_DATA"

관련 정보