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

SQLite JSON_ARRAY ()

Trong SQLite, json_array() hàm trả về một mảng JSON được định dạng tốt dựa trên các đối số của nó.

Hàm chấp nhận không hoặc nhiều đối số và mỗi đối số trở thành một phần tử trong mảng kết quả.

Cú pháp

json_array(value1,value2,...)

Trong đó value1, value2, ... đại diện cho các phần tử mảng cho mảng kết quả.

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh:

SELECT json_array( 9, 7, 12, 11 );

Kết quả:

[9,7,12,11]

Việc thêm dấu ngoặc kép vào một số dẫn đến phần tử mảng đó là một chuỗi JSON được trích dẫn:

SELECT json_array( 9, '7', 12, 11 );

Kết quả:

[9,"7",12,11]

Truyền các đối tượng JSON

Truyền một đối số với kiểu SQL TEXT dẫn đến một chuỗi JSON được trích dẫn, với bất kỳ nhãn được trích dẫn nào đều được thoát:

SELECT json_array( '{ "a" : 1 }' );

Kết quả:

["{ \"a\" : 1 }"]

Nếu không muốn điều này xảy ra, chúng ta có thể sử dụng json() chức năng cung cấp giá trị dưới dạng tài liệu JSON hợp lệ:

SELECT json_array( json('{ "a" : 1 }') );

Kết quả:

[{"a":1}]

Một cách khác để làm điều đó là sử dụng -> của SQLite nhà điều hành:

SELECT json_array( '{ "a" : 1 }' -> '$' );

Kết quả:

[{"a":1}]

Ngoài ra, chúng ta có thể sử dụng json_object() chức năng:

SELECT json_array( json_object( 'a', 1 ) );

Kết quả:

[{"a":1}]

Đây là với một số phần tử mảng khác:

SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );

Kết quả:

["Cat",{"a":1},"Dog"]

Truyền các mảng JSON

Điều tương tự khi chuyển các mảng JSON:

SELECT json_array( '[ 9, 4, 7 ]' );

Kết quả:

["[ 9, 4, 7 ]"]

Trong trường hợp này, chúng tôi nhận được một mảng JSON chứa một chuỗi giống với một mảng khác.

Để trả về một mảng JSON thực, chúng ta có thể chuyển đối số của mình vào json() chức năng:

SELECT json_array( json('[ 9, 4, 7 ]') );

Kết quả:

[[9,4,7]]

Chúng tôi cũng có thể sử dụng -> nhà điều hành:

SELECT json_array( '[ 9, 4, 7 ]' -> '$' );

Kết quả:

[[9,4,7]]

Ngoài ra, chúng ta có thể chuyển các giá trị sang một json_array() khác :

SELECT json_array( json_array( 9, 4, 7 ) );

Kết quả:

[[9,4,7]]

Đây là với một số phần tử mảng khác:

SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );

Kết quả:

["Cat",[9,4,7],"Dog"]

Tạo một mảng trống

Đang gọi json_array() mà không chuyển bất kỳ đối số nào dẫn đến một mảng trống:

SELECT json_array();

Kết quả:

[]

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách liệt kê tên bảng từ DB sqlite - Android

  2. SQLite COUNT

  3. SQLite KHÔNG ĐỦ

  4. Hiệu suất Sqlite của Android

  5. Sử dụng chuỗi [] selectArgs trong SQLiteDatabase.query ()