SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Định dạng kết quả SQLite dưới dạng JSON

Có thể xuất kết quả truy vấn dưới dạng tài liệu JSON khi sử dụng giao diện dòng lệnh SQLite.

Chúng ta có thể làm điều này với json chế độ đầu ra.

Chúng ta cũng có thể sử dụng các hàm SQLite như json_object() và / hoặc json_array() để trả về kết quả truy vấn dưới dạng tài liệu JSON.

Chế độ đầu ra JSON

Chúng ta có thể thay đổi chế độ đầu ra như sau:

.mode json

Đó là tất cả.

Bây giờ khi chúng tôi chạy một truy vấn, kết quả được xuất ra dưới dạng tài liệu JSON:

SELECT * FROM Pets;

Kết quả:

[{"PetId":1,"PetName":"Homer","TypeId":3},
{"PetId":2,"PetName":"Yelp","TypeId":1},
{"PetId":3,"PetName":"Fluff","TypeId":2},
{"PetId":4,"PetName":"Brush","TypeId":4}]

Chỉ cần nói rõ, đây là chế độ bảng:

.mode table

Chạy truy vấn:

SELECT * FROM Pets;

Kết quả:

+-------+---------+--------+
| PetId | PetName | TypeId |
+-------+---------+--------+
| 1     | Homer   | 3      |
| 2     | Yelp    | 1      |
| 3     | Fluff   | 2      |
| 4     | Brush   | 4      |
+-------+---------+--------+

Lưu ý rằng chế độ đầu ra json đã được giới thiệu trong SQLite 3.33.0, được phát hành vào ngày 14 tháng 8 năm 2020.

Nếu bạn đang sử dụng phiên bản SQLite cũ hơn, các ví dụ trên sẽ không phù hợp với bạn. Bạn sẽ cần phải nâng cấp lên phiên bản mới hơn nếu bạn muốn điều này hoạt động.

Ngoài ra, bạn có thể sử dụng hàm JSON để thực hiện công việc (giả sử các hàm JSON được bật).

Các hàm JSON

Một cách khác để thực hiện là kết hợp một hoặc nhiều hàm JSON vào truy vấn của chúng tôi để nó trả về một tài liệu JSON.

Đầu tiên, hãy đặt chế độ đầu ra của chúng tôi thành list :

.mode list

Bây giờ, hãy chạy một truy vấn sử dụng json_group_array()json_object() để trả về kết quả truy vấn của chúng tôi trong tài liệu JSON:

SELECT json_group_array( 
        json_object(
        'PetId', PetId, 
        'PetName', PetName,
        'TypeId', TypeId 
        )
    )
FROM Pets;

Kết quả:

[{"PetId":1,"PetName":"Homer","TypeId":3},
{"PetId":2,"PetName":"Yelp","TypeId":1},
{"PetId":3,"PetName":"Fluff","TypeId":2},
{"PetId":4,"PetName":"Brush","TypeId":4}]

Ở đây, chúng tôi xuất mỗi hàng dưới dạng một đối tượng JSON và toàn bộ nội dung được bao bọc trong một mảng JSON.

Chúng ta có thể bỏ qua json_group_array() hàm tự trả về từng đối tượng:

SELECT json_object( 
    'PetId', PetId, 
    'PetName', PetName,
    'TypeId', TypeId 
    )
FROM Pets;

Kết quả:

{"PetId":1,"PetName":"Homer","TypeId":3}
{"PetId":2,"PetName":"Yelp","TypeId":1}
{"PetId":3,"PetName":"Fluff","TypeId":2}
{"PetId":4,"PetName":"Brush","TypeId":4}

Các ví dụ này giả định rằng các chức năng JSON được kích hoạt. Nếu bạn đang sử dụng SQLite 3.38.0 trở lên, chúng phải được bật theo mặc định (trừ khi chúng bị tắt rõ ràng khi biên dịch SQLite).

Trước phiên bản SQLite 3.38.0 (phát hành vào ngày 22 tháng 2 năm 2022), chúng tôi cần biên dịch SQLite với SQLITE_ENABLE_JSON1 để bao gồm các hàm JSON trong bản dựng. Tuy nhiên, bắt đầu với phiên bản SQLite 3.38.0, các hàm JSON được bao gồm theo mặc định.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xử lý xung đột khóa chính khi chèn dữ liệu vào SQLite

  2. Cách hoạt động của SQLite Avg ()

  3. Trừ số năm cho một ngày trong SQLite

  4. Dữ liệu SQLite đến RecyclerView

  5. Làm cách nào để chọn một cột cụ thể từ cơ sở dữ liệu phòng được cung cấp một tham số cụ thể trong truy vấn phòng?