YamlBox

कोड जनरेटर · 5 मिनट पढ़ें

JSON से SQL: पेलोड से तालिका तक आप क्वेरी कर सकते हैं

कभी-कभी किसी JSON फ़ाइल से SQL क्वेरी तक का सबसे तेज़ रास्ता उससे एक तालिका बनाना होता है। JSON को SQL में परिवर्तित करने से एक चरण में स्कीमा और पंक्तियाँ उत्पन्न होती हैं, जो फिक्स्चर, स्क्रैच विश्लेषण और स्थानीय डेटाबेस को सीडिंग करने के लिए आदर्श है - बशर्ते आप इसे अपने माइग्रेशन इतिहास से बाहर रखें।

अद्यतन

JSON से SQL तक मानचित्र कैसे प्रकार होते हैं

  • स्ट्रिंग्स → `TEXT` (`VARCHAR(n)` जब आपको लंबाई बजट पता हो)।
  • संपूर्ण संख्याएँ → `INTEGER` / `BIGINT`, दशमलव → `NUMERIC` फ्लोटिंग पॉइंट के बजाय, विशेष रूप से पैसे के लिए।
  • बूलियन्स → `BOOLEAN`.
  • नेस्टेड ऑब्जेक्ट और सरणियाँ → `JSONB` PostgreSQL में, `JSON` MySQL 8 में - या जब डेटा यहीं रहता है तो उन्हें चाइल्ड टेबल में सामान्यीकृत करें।
  • गुम कुंजियाँ → निरर्थक कॉलम, कभी भी ऐसा डिफ़ॉल्ट नहीं जो किसी मान को नकली बनाता हो।

एक जेनरेट की गई तालिका एक बेहतरीन शुरुआती बिंदु और एक भयानक माइग्रेशन है। आप जो स्कीमा चाहते हैं उसे लिखें, फिर जेनरेट किए गए SQL को कॉलम नामों और प्रकारों के संदर्भ के रूप में उपयोग करें।

भागना वैकल्पिक नहीं है

JSON में स्ट्रिंग्स में नियमित रूप से एपॉस्ट्रॉफ़ीज़ होते हैं - `O’Brien`, `it's done` - और हाथ से SQL में चिपकाए जाने पर वे स्ट्रिंग को अक्षरशः जल्दी ख़त्म कर देते हैं और कथन को तोड़ देते हैं। जेनरेट किए गए INSERT कथन प्रत्येक उद्धरण को सही ढंग से दोगुना करते हैं, जो कि रूपांतरण आपके लिए सबसे उपयोगी चीज़ है। बल्क इंसर्ट के लिए, पंक्तियों को एक स्टेटमेंट में लपेटें ताकि डेटाबेस प्रति पंक्ति करने के बजाय लिखने को बैच कर सके।

अच्छे उपयोग, बुरे उपयोग

परीक्षणों के लिए फिक्स्चर डेटा, एक API निर्यात की एक स्थानीय स्क्रैच कॉपी, एक डेमो वातावरण को सीड करना और SQL में एक बार के प्रश्न का उत्तर देना JSON से SQL रूपांतरण से सभी फ़ायदे। उत्पादन स्कीमा प्रबंधन नहीं करता है: माइग्रेशन को समीक्षा, अनुक्रमणिका, बाधाओं और रोलबैक पथ की आवश्यकता होती है। तालिका बनाएं, फिर भेजे जाने वाले माइग्रेशन को हाथ से लिखें।

सारणियाँ और वस्तुएँ: समतल करें या संग्रहित करें?

यदि कोई सरणी अदिशों की एक निश्चित सूची है, तो विदेशी कुंजी वाली एक चाइल्ड तालिका प्रश्नों को सरल रखती है। यदि यह वास्तव में गतिशील पेलोड है - वेबहुक निकाय, तृतीय-पक्ष मेटाडेटा - इसे `JSONB` के रूप में संग्रहीत करना और आपके द्वारा क्वेरी किए गए पथों को अनुक्रमित करना व्यावहारिक विकल्प है। यह तय करें कि आप इसे कैसे क्वेरी करेंगे: आप जो कुछ भी फ़िल्टर करते हैं या उसमें शामिल होते हैं वह एक कॉलम में होता है।

इसे ब्राउज़र में चलाएँ

डेटाबेस निर्यात और API डंप बिल्कुल पेलोड हैं जिन्हें किसी अज्ञात सेवा पर अपलोड नहीं किया जाना चाहिए। यहां JSON से SQL रूपांतरण पूरी तरह से पृष्ठ में होता है, इसलिए आपके द्वारा कॉपी किया गया विवरण उस डेटा से बनाया गया है जो आपकी मशीन से कभी नहीं निकला, और टूल अभी भी ऑफ़लाइन काम करता है।

JSON से SQL - अक्सर पूछे जाने वाले प्रश्न

मुझे कौन सी SQL बोली उत्पन्न करनी चाहिए?

उस डेटाबेस को लक्षित करें जिसके विरुद्ध आप वास्तव में इसे चलाएंगे - `JSONB` के लिए PostgreSQL, `JSON` के लिए MySQL 8 और बैकटिक पहचानकर्ता, हल्के स्थानीय कार्य के लिए SQLite। उद्धरण नियम और प्रकार के नाम उनके बीच भिन्न होते हैं, इसलिए प्रति बोली को पुनर्जीवित करना हाथ से अनुकूलित करना होता है।

क्या मैं JSON सरणियों को एक SQL कॉलम में सम्मिलित कर सकता हूँ?

हां, JSON कॉलम प्रकार वाले डेटाबेस में: सरणी `JSONB` या `JSON` हो जाती है और आप पथ ऑपरेटरों के साथ इसमें क्वेरी करते हैं। यदि आपको तत्वों को जोड़ने या एकत्रित करने की आवश्यकता है, तो चाइल्ड टेबल बेहतर मॉडल है।

क्या उत्पन्न SQL इंजेक्शन से सुरक्षित है?

जेनरेट किए गए स्टेटमेंट आपके लिए हैं जहां आप चुनते हैं वहां चलाएं, और स्ट्रिंग मान अक्षरशः के रूप में बच जाते हैं। वे एप्लिकेशन कोड में पैरामीटरयुक्त क्वेरी का विकल्प नहीं हैं - कभी भी सर्वर में संयोजन द्वारा क्वेरी नहीं बनाते हैं।

इस पोस्ट में उल्लिखित उपकरण

19 टूल की पूरी सूची ब्राउज़ करें

पढ़ने के लिए और लेख

6 मिनट पढ़ें

JSON से TypeScript: ऐसे प्रकार जो वास्तविकता से मेल खाते हैं

वास्तविक API प्रतिक्रिया से JSON को TypeScript इंटरफ़ेस में कनवर्ट करें - वैकल्पिक कुंजी, शून्य यूनियन, नेस्टेड प्रकार - और उत्पन्न प्रकारों को बहने से बचाएं।

5 मिनट पढ़ें

JSON जाने के लिए: ऐसी संरचनाएं जो पहले प्रयास में अनमर्शल हो

सही फ़ील्ड नाम और json टैग के साथ JSON को गो स्ट्रक्चर में कनवर्ट करें, नेस्टेड प्रकार शामिल हैं - साथ ही देखने के लिए संख्यात्मक, शून्य और समय जाल।

5 मिनट पढ़ें

CSV से JSON: स्प्रेडशीट से संरचित डेटा तक

ब्राउज़र में CSV को JSON में कनवर्ट करें - हेडर पंक्तियाँ, सीमांकक, उद्धरण नियम और प्रकार प्रबंधन समझाया गया, स्प्रेडशीट निर्यात के साथ जो पार्सर को तोड़ता है।

सभी 19 पोस्ट →