Polecenie JQ w Linux z przykładami

Polecenie JQ w Linux z przykładami

JSON to format reprezentacji danych, który służy do przechowywania i przesyłania danych między różnymi warstwami aplikacji; Przechowuje dane w kluczu: Pary wartości.

Składnia JSON pochodziła z JavaScript, ale sam jest niezależny od języka. Jest kompatybilny z wieloma językami programowania; Języki te obejmują kod, który można użyć do integracji JSON z programem; Ale niestety nie możemy pracować z JSON bezpośrednio w Linux Shell, ponieważ nie może tego zinterpretować. Do pracy z JSON w Linux Shell Używamy mieszanki narzędzi takich jak JQ i SED.

Ten post nauczy nas używać polecenia JQ do manipulowania i pracy z danymi JSON w linii Linux Shell.

Jak zainstalować polecenie JQ

Polecenie JQ nie jest dostępne domyślnie w niektórych dystrybucjach Linux; Należy go pobrać do systemu, zanim będzie można go użyć na terminalu; Możesz pobrać polecenie JQ, tak jak każdy inny pakiet w systemie. Na Ubuntu 20.04 Użyj poniższej komendy, aby zainstalować narzędzie JQ:

sudo apt instal JQ  

Po prostu zastąp APT na menedżera pakietów swojego systemu, jeśli prowadzisz dystrybucję inną niż Ubuntu.

Jeśli prowadzisz rozkład taki jak Centos 8, który już domyślnie ma JQ, otrzymasz wyjście podobne do tego:

sudo dnf instaluj JQ  

Składnia

Teraz możemy zacząć używać polecenia JQ, ponieważ zostało ono pomyślnie zainstalowane w naszym systemie, ale najpierw spójrzmy na składnię polecenia JQ:

JQ [opcje] [Plik…] JQ [Options] --Args [Strings…] JQ [opcje] -JSONARGS [JSON_TEXTS…] 

Polecenie JQ może być używane na wiele różnych sposobów; Można go używać bezpośrednio na pliku JSON i można go również połączyć z kilkoma innymi poleceniami do interpretacji danych JSON. Polecenie JQ może być używane z różnymi filtrami, takimi jak ".”,„ | ”,„ ”,” albo ".[] ” Filtr, aby zorganizować dane JSON.

Polecenie JQ przyjmuje również różne opcje jako argumenty, takie jak --patka, --strumień, --wcięcie n, --Niepłyczony, i -L Opcja katalogu. Składnia polecenia JQ może na początku wydawać się złożona, ale zapoznasz się z nim po przeczytaniu całego artykułu.

Jak uporządkować dane JSON za pomocą polecenia JQ

Najprostsza i najczęściej używana funkcja filtrów poleceń JQ. Służą one do organizowania i upiększania danych JSON podczas drukowania na standardowe wyjście.

  • W tym przykładzie mamy nazwany plik JSON pracownik.JSON i musimy wyprowadzić dane do standardowego wyjścia: „Workers”: „name”: „John Brooks”, „id”: „003”
    1„Workers”: „name”: „John Brooks”, „id”: „003”

  • Możemy użyć polecenia CAT, aby pokazać dane:
    Pracownik CAT.JSON 

  • Dane wydrukowane na standardowym wyjściu za pomocą polecenia CAT są niezorganizowane i niechlujne. Możemy zorganizować te dane za pomocą polecenia JQ wraz z '.' filtr:
    JQ '.' pracownik.JSON 

Teraz dane stały się o wiele bardziej zorganizowane, kolorowe i łatwiejsze do zrozumienia. Ten filtr jest szczególnie potrzebny podczas uzyskiwania dostępu do danych z interfejsów API; Dane przechowywane w interfejsach API mogą być bardzo niezorganizowane i mylące.

Jak uzyskać dostęp do właściwości za pomocą polecenia JQ

.pole Filtr wraz z poleceniem JQ może być używany do dostępu do właściwości obiektów w powładzie.

  • Jeśli chcemy tylko uzyskać dostęp i wydrukować jedną właściwość na standardowe wyjście, możemy użyć .pole operator. mi.G Aby uzyskać dostęp do właściwości pracownika, możemy użyć tego polecenia:
    JQ '.Pracownik pracowników.JSON 

  • Możemy również uzyskać dostęp do elementów obecnych w nieruchomości za pomocą .pole operator. Aby uzyskać dostęp do elementu nazwy we właściwości pracownika, użyjemy:
    JQ '.pracownicy.Nazwa „pracownik.JSON 

Jak uzyskać dostęp do elementu tablicy za pomocą polecenia JQ

Możemy również uzyskać dostęp do elementów obecnych w tablicy w pliku JSON za pomocą .[] [] operator. W tym przykładzie zmodyfikujemy nasz plik JSON, więc wygląda na to:

[„Nazwa”: „John Brooks”, „id”: „003”, „nazwa”: „Randy Park”, „id”: „053”, „name”: „Todd Gray”, ” id „:„ 009 ”]
1[„Nazwa”: „John Brooks”, „id”: „003”, „nazwa”: „Randy Park”, „id”: „053”, „name”: „Todd Gray”, ” id „:„ 009 ”]
  1. Aby wyprowadzić wszystkie tablice obecne w pliku JSON, uruchommy polecenie podane poniżej:
    JQ '.[]' pracownik.JSON 

  2. Aby wyprowadzić tylko drugą tablicę, możemy zmodyfikować powyższe polecenie w następujący sposób:
    JQ '.[1] „Pracownik.JSON 

  3. Pamiętaj, że tablica zaczyna się od 0

    Możemy również uzyskać dostęp do właściwości obecnych w tablicy za pomocą .Operator polowy. mi.G Jeśli chcemy uzyskać dostęp do właściwości nazwy w trzeciej tablicy, uruchomimy następujące polecenie:

    JQ '.[2].Nazwa „pracownik.JSON 

  4. Podobnie, aby uzyskać dostęp do wszystkich właściwości nazwy wewnątrz tablic, możemy wykonać to polecenie:
    JQ '.[] [].Nazwa „pracownik.JSON  

Wniosek

Polecenie JQ jest używane do przekształcania danych JSON w bardziej czytelny format i wydrukowanie na standardowe wyjście w Linux. Polecenie JQ jest zbudowane wokół filtrów używanych do znajdowania i drukowania tylko wymaganych danych z pliku JSON.

W tym poradniku nauczyliśmy się używać polecenia JQ do organizowania i filtrowania danych JSON.