JSON ist ein Datendarstellungsformat, das zum Speichern und Übertragen von Daten zwischen verschiedenen Schichten einer Anwendung verwendet wird. Es speichert Daten in Schlüssel-Wert-Paaren. In diesem Artikel lernen wir, JQ-Befehle zum Bearbeiten und Verarbeiten von JSON-Daten in der Shell zu verwenden.
Verwenden Sie den folgenden Befehl, um jq
auf Centos8 zu installieren:
[root@localhost ~]# dnf -y install jq
Jetzt können wir mit der Verwendung des JQ-Befehls beginnen, da er erfolgreich auf unserem System installiert wurde, aber werfen wir zunächst einen Blick auf die Syntax des JQ-Befehls:
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
Der JQ-Befehl kann auf viele verschiedene Arten verwendet werden; er kann direkt für JSON-Dateien verwendet oder mit mehreren anderen Befehlen kombiniert werden, um JSON-Daten zu interpretieren. JQ-Befehle können mit verschiedenen Filtern wie „.“, „|“, „“ oder „.[]“-Filtern verwendet werden, um JSON-Daten zu organisieren.
JQ-Befehl akzeptiert auch verschiedene Optionen als Parameter wie –tab, –stream, –indent n, –unbuffered und die Verzeichnisoption -L. Die Syntax von JQ-Befehlen mag zunächst kompliziert erscheinen, aber Sie werden sich nach der Lektüre des gesamten Artikels damit vertraut machen.
Die einfachste und am häufigsten verwendete Funktion des JQ-Befehlsfilters. Sie werden verwendet, um JSON-Daten beim Drucken auf der Standardausgabe zu organisieren und zu verschönern.
In diesem Beispiel haben wir eine JSON-Datei namens „mitarbeiter.json“ und müssen die Daten in die Standardausgabe ausgeben:
{"workers":{"name": "John Brooks","id": "003"}}
Wir können den Befehl cat verwenden, um die Daten anzuzeigen:
[root@localhost ~]# cat employee.json {"workers":{"name": "John Brooks","id": "003"}}
Die mit dem Befehl cat auf der Standardausgabe ausgegebenen Daten sind unorganisiert und verwirrend. Wir können JQ-Befehle und „.“ verwenden, um diese Daten zu organisieren, und .
zum Filtern verwenden:
[root@localhost ~]# jq '.' employee.json { "workers": { "name": "John Brooks", "id": "003" } }
Jetzt sind die Daten organisierter, farbenfroher und leichter verständlich. Dieser Filter wird insbesondere beim Zugriff auf Daten über eine API benötigt; die in der API gespeicherten Daten können sehr unorganisiert und verwirrend sein.
.字段
Filter und JQ-Befehle können verwendet werden, um auf Objekteigenschaften in der Shell zuzugreifen.
Wenn wir nur auf eine einzelne Eigenschaft zugreifen und diese in der Standardausgabe ausgeben möchten, können wir den Operator .字段
verwenden. Um beispielsweise auf die Eigenschaften eines Arbeiters zuzugreifen, können wir den folgenden Befehl verwenden:
[root@localhost ~]# jq '.workers' employee.json { "name": "John Brooks", "id": "003" }
Mit dem .字段
-Operator können wir auch auf in Eigenschaften vorhandene Elemente zugreifen. Um auf das Namenselement im Worker-Attribut zuzugreifen, verwenden wir:
[root@localhost ~]# jq '.workers.name' employee.json "John Brooks"
Mit dem Operator .[]
können wir auch auf die im Array vorhandenen Elemente in der JSON-Datei zugreifen und diese ausgeben. Für dieses Beispiel ändern wir unsere JSON-Datei und fügen Folgendes hinzu:
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
Überprüfen Sie die Datei „employee.json“:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
要输出 JSON 文件中存在的所有数组,我们将运行以下命令:
[root@localhost ~]# jq '.[]' employee.json { "name": "John Brooks", "id": "003" } { "name": "Randy Park", "id": "053" } { "name": "Todd Gray", "id": "009" }
要仅输出第二个数组,我们可以通过以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json { "name": "Randy Park", "id": "053" }
请记住,数组从索引 0 开始的。
我们还可以使用 .字段
运算符访问数组中存在的属性。例如,如果我们想访问第三个数组中的 name 属性,那么我们将运行以下命令:
[root@localhost ~]# jq '.[2].name' employee.json "Todd Gray"
类似地,要访问数组中的所有名称属性,我们可以执行以下命令:
[root@localhost ~]# jq '.[].name' employee.json "John Brooks" "Randy Park" "Todd Gray"
JQ 命令用于将 JSON 数据转换为更易读的格式并将其打印到 Linux 上的标准输出。JQ 命令是围绕过滤器构建的,过滤器用于从 JSON 文件中仅查找和打印所需的数据。
Das obige ist der detaillierte Inhalt vonBeispiele für die Verwendung von JQ-Befehlen unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!