الانتقال إلى المحتوى الرئيسي

الوصف

في هذا التنسيق، يُفسَّر كائن JSON واحد باعتباره قيمة JSON واحدة. وإذا كان الإدخال يحتوي على عدة كائنات JSON (مفصولة بفواصل)، فتُفسَّر على أنها صفوف منفصلة. وإذا كانت بيانات الإدخال محاطة بـ []، فتُفسَّر على أنها مصفوفة من قيم JSON. لا يمكن تحليل هذا التنسيق إلا لجدول يحتوي على حقل واحد من النوع JSON. ويجب تعيين الأعمدة المتبقية إلى DEFAULT أو MATERIALIZED.

مثال للاستخدام

مثال بسيط

Query
CREATE TABLE json_as_object (json JSON) ENGINE = Memory;
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"foo":{"bar":{"x":"y"},"baz":1}},{},{"any json stucture":1}
SELECT * FROM json_as_object FORMAT JSONEachRow;
Response
{"json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}
{"json":{}}
{"json":{"any json stucture":"1"}}

مصفوفة من كائنات JSON

Query
CREATE TABLE json_square_brackets (field JSON) ENGINE = Memory;
INSERT INTO json_square_brackets FORMAT JSONAsObject [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}];
SELECT * FROM json_square_brackets FORMAT JSONEachRow;
Response
{"field":{"id":"1","name":"name1"}}
{"field":{"id":"2","name":"name2"}}

الأعمدة ذات القيم الافتراضية

Query
CREATE TABLE json_as_object (json JSON, time DateTime MATERIALIZED now()) ENGINE = Memory;
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"foo":{"bar":{"x":"y"},"baz":1}};
INSERT INTO json_as_object (json) FORMAT JSONAsObject {};
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"any json stucture":1}
SELECT time, json FROM json_as_object FORMAT JSONEachRow
Response
{"time":"2024-09-16 12:18:10","json":{}}
{"time":"2024-09-16 12:18:13","json":{"any json stucture":"1"}}
{"time":"2024-09-16 12:18:08","json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}

إعدادات التنسيق

آخر تعديل في ٢٥ يونيو ٢٠٢٦