Xử lý JSON trên giao diện dòng lệnh Linux

jq là một JSON processor, nó giống như sed nhưng cho JSON data. Dùng nó kết hợp với grep, sedawk ta có thể lọc, cắt, ghép các dữ liệu JSON trên giao diện dòng lệnh của Linux.

Có thể dễ dàng cái đặt theo tài liệu tại https://stedolan.github.io/jq/download, đối với Arch Linux, có thể cài đặt từ pacman -S jq –noconfirm

Giờ hãy bắt đầu xem jq có thể làm được gì. Ví dụ mình có một file JSON như sau:

1. Lấy tất cả các đối tượng

2. Kiểm tra độ dài

Giờ thử kiểm tra xem có bao nhiêu đối tượng trong file JSON đó

Kiểm tra mỗi đối tượng có bao nhiêu thuộc tính

3. Lấy thuộc tính của đối tượng

Lấy một thuộc tính của tất cả các đối tượng. Ví dụ mình muốn lấy displayName của tất cả 6 đối tượng trên.

4. Xử lý trên từng đối tượng

Tiếp đến thử lấy một đối tượng trong file đó. Ví dụ mình muốn lấy phần tử đầu tiên.

Giờ thử lấy một thuộc tính của một đối tượng. Ví dụ muốn kiểm tra trạng thái của đối tượng số số 2.

5. Sort theo một thuộc tính

Ví dụ mình muốn sort theo displayName

6. So sánh, điều kiện

Liệt kê các đối tượng có tên là master

Trên đây là một số xử lý đơn giản, để tìm hiểu thêm về jq bạn có thể truy cập vào trang https://stedolan.github.io/jq/manual/ để đọc thêm. Trong bài tiếp theo mình sẽ giới thiệu cách mà mình sử dụng jq với Jenkins API để lấy, xử lý các thông tin về Jobs và Nodes.

Techtalk via kipalog