Json форматындағы мәліметпен консольда жұмыс жасаймыз



Қандай да бір сервиспен REST API арқылы жұмыс жасағанда ары бері шаппай консольда алынған мәліметтерді өңдеу уақытты қысқартады. Әсіресе, егер сұраныстардан тым үлкен json келсе.

Консольда ондай мүмкіндікті беретін jq деп аталатын кішігірім құралды пайдаланып көреміз. Оның көмегімен json форматындағы мәліметті оқуға, фильтрлеуге, өзгертуге болады. Сондықтан да bash скрипттарда пайдалану үшін де ыңғайлы. C тілінде жазылғандықтан, әрі жылдам.

Linux-қа орнату үшін бинарлы файлдарды жүктеп алсаңыз болды.
$ wget http://stedolan.github.io/jq/download/linux32/jq (32-bit)
$ wget http://stedolan.github.io/jq/download/linux64/jq (64-bit)
$ chmod +x ./jq
$ sudo cp jq /usr/bin


Windows және Mac OS үшін де нұсқалары бар. Жалпы коды MIT лицензиясы бойынша таралады.

Енді мысалдарды қарастырайық. Бізде келесідей json мәлімет бар:
$ cat json.txt
{
    "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"


Қажет мәліметтерді шектеу:
{
  "city": "Mountain View",
  "street": "1600 Amphitheatre Parkway"
}

  • +3
0 пікір
Тек тіркелген қолданушылар ғана пікір қалдыра алады.