SQLite
 sql >> база данни >  >> RDS >> SQLite

Форматирайте резултатите от SQLite като JSON

Възможно е да изведете резултатите от заявката като JSON документ, когато използвате интерфейса на командния ред на SQLite.

Можем да направим това с json изходен режим.

Можем също да използваме функции на SQLite като json_object() и/или json_array() за да върнете резултатите от заявката като JSON документ.

Режим на извеждане на JSON

Можем да променим изходния режим по следния начин:

.mode json 

Това е всичко.

Сега, когато стартираме заявка, резултатите се извеждат като JSON документ:

SELECT * FROM Pets; 

Резултат:

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

Само за да е ясно, ето го в режим на таблица:

.mode table 

Изпълнете заявката:

SELECT * FROM Pets; 

Резултат:

<пред>+-------+--------+-------+| PetId | Име на домашни любимци | TypeId |+-------+--------+-------+| 1 | Омир | 3 || 2 | Йелп | 1 || 3 | Пух | 2 || 4 | Четка | 4 |+-------+--------+-------+

Имайте предвид, че режимът за извеждане на json беше въведен в SQLite 3.33.0, който беше пуснат на 14 август 2020 г.

Ако използвате по-ранна версия на SQLite, горните примери няма да работят за вас. Ще трябва да надстроите до по-нова версия, ако искате това да работи.

Като алтернатива можете да използвате функция JSON, за да свършите работата (ако приемем, че функциите на JSON са активирани).

JSON функции

Друг начин да го направите е да включите една или повече JSON функции в нашата заявка, така че да връща JSON документ.

Първо, нека зададем нашия изходен режим на list :

.mode list 

Сега нека изпълним заявка, която използва json_group_array() и json_object() за да върнете резултатите от нашата заявка в JSON документ:

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

Резултат:

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

Тук извеждаме всеки ред като JSON обект и цялото нещо е обвито в JSON масив.

Можем да пропуснем json_group_array() функция за връщане на всеки обект самостоятелно:

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

Резултат:

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

Тези примери предполагат, че функциите JSON са активирани. Ако използвате SQLite 3.38.0 или по-нова версия, те трябва да бъдат активирани по подразбиране (освен ако не са били изрично деактивирани при компилирането на SQLite).

Преди версията на SQLite 3.38.0 (издадена на 22 февруари 2022 г.) трябваше да компилираме SQLite с SQLITE_ENABLE_JSON1 опция, за да включите функциите JSON в компилацията. Въпреки това, като се започне с SQLite версия 3.38.0, функциите JSON са включени по подразбиране.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Няма достъп до предварително попълнена база данни на SQLite с помощта на PhoneGap/Cordova в Android

  2. JSON функции и оператори в SQLite (пълен списък)

  3. Конструкторът SQLiteOpenHelper() е недефиниран

  4. SQLite Създаване на таблица

  5. Добавете дни към дата в SQLite