JSON, CSV, YAML और XML के बीच डेटा बदलने पर क्या बदलता है?
चारों फ़ॉर्मेट डेटा को अलग तरह से मॉडल करते हैं: JSON और YAML नेस्टिंग व टाइप रखते हैं, CSV स्ट्रिंग की सपाट तालिका है, और XML एलिमेंट व एट्रिब्यूट में फ़र्क करता है। इसलिए कन्वर्टर को फ़ैसले लेने पड़ते हैं — नेस्टेड ऑब्जेक्ट कॉलम में कैसे सपाट हों, "42" और "true" का टाइप क्या हो, एट्रिब्यूट कहाँ जाएँ — और सही फ़ैसला उस पर निर्भर है जो रिसीविंग सिस्टम अपेक्षित करता है।
JSON से SQL कैसे इस्तेमाल करें
- ऑब्जेक्ट का JSON ऐरे पेस्ट करें।
- टेबल का नाम, डायलेक्ट और primary key दर्ज करें।
- SQL आउटपुट कॉपी करें।
JSON से SQL की खूबियाँ
- ऑब्जेक्ट के ऐरे (API रिस्पॉन्स, fixture) को INSERT स्टेटमेंट में बदलता है
- अनुमानित टाइप के साथ वैकल्पिक CREATE TABLE
- नेस्टेड ऑब्जेक्ट को parent_child कॉलम में समतल करता है; ऐरे JSON के रूप में रखे जाते हैं
- सभी ऑब्जेक्ट की कीज़ का संघ — ग़ैर-मौजूद फ़ील्ड NULL बन जाते हैं
- पाँच डायलेक्ट, सही boolean, तारीख़ और JSON टाइप के साथ
- बैचिंग और हर पंक्ति के लिए अलग स्टेटमेंट वाले मोड
JSON से SQL का उदाहरण
API पेलोड से seed करना
इनपुट:
[{"id": 1, "name": "Layla", "profile": {"city": "Riyadh"}}]आउटपुट:
CREATE TABLE IF NOT EXISTS users (
id INT NOT NULL,
name VARCHAR(10) NOT NULL,
profile_city VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO users (id, name, profile_city) VALUES
(1, 'Layla', 'Riyadh');JSON से SQL के बारे में अक्सर पूछे जाने वाले सवाल
किस आकार का JSON अपेक्षित है?
एक जैसी कीज़ वाले ऑब्जेक्ट का ऐरे, जैसे कोई API रिस्पॉन्स। ऐरे को लपेटने वाला ऑब्जेक्ट (जैसे {"data": [...]}) भी पहचान लिया जाता है।
नेस्टेड ऑब्जेक्ट और ऐरे कैसे संभाले जाते हैं?
नेस्टेड ऑब्जेक्ट parent_child नाम वाले कॉलम में समतल हो जाते हैं। ऐरे JSON टेक्स्ट के रूप में रखे जाते हैं (PostgreSQL में JSONB, MySQL में JSON)। पूरे ऑब्जेक्ट को JSON के रूप में रखने के लिए "Flatten" से टिक हटा दें।
अगर ऑब्जेक्ट की कीज़ अलग-अलग हों तो?
कॉलम सेट सभी कीज़ का संघ होता है, पहली बार दिखने के क्रम में; ग़ैर-मौजूद फ़ील्ड NULL बन जाते हैं।
क्या तारीख़ें अपना टाइप बनाए रखती हैं?
ISO 8601 स्ट्रिंग पहचानी जाती हैं और उन्हें DATE या TIMESTAMP टाइप मिलता है; बाक़ी स्ट्रिंग VARCHAR ही रहती हैं।
संदर्भ
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatJSON का व्याकरण: ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, तीन लिटरल और इंटरचेंज एन्कोडिंग के रूप में UTF-8।
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) FilesCSV के आम नियम: कॉमा सेपरेटर, CRLF लाइन एंड, और कॉमा, कोट या लाइन ब्रेक वाले फ़ील्ड की क्वोटिंग।
- YAML Ain't Markup Language (YAML™) version 1.2.2YAML 1.2 का डेटा मॉडल और सिंटैक्स, और JSON से उसका संबंध (हर JSON दस्तावेज़ वैध YAML 1.2 है)।
- PostgreSQL Documentation: SQL SyntaxPostgreSQL में SQL की लेक्सिकल संरचना: आइडेंटिफ़ायर, क्वोटिंग, स्ट्रिंग कॉन्स्टेंट और एस्केपिंग।