JSON to CSV

JSON ऐरे को CSV फ़ॉर्मेट में बदलें

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है
CSV यहाँ दिखेगा…

JSON से CSV रूपांतरण क्या है?

JSON से CSV रूपांतरण संरचित डेटा को JSON फ़ॉर्मेट से अल्पविराम-पृथक मानों (comma-separated values) में बदलता है — एक सारणीबद्ध फ़ॉर्मेट जिसे स्प्रेडशीट, डेटाबेस और विश्लेषण उपकरण सीधे उपयोग कर सकते हैं। JSON फ़ॉर्मेट डेटा को नेस्टेड ऑब्जेक्ट और ऐरे के रूप में बिना किसी निश्चित स्कीमा के संग्रहीत करता है। CSV डेटा को पंक्तियों और स्तंभों के रूप में संग्रहीत करता है जिसमें एक शीर्षक पंक्ति फ़ील्ड नाम परिभाषित करती है। इसी रूपांतरण की मदद से API डेटा स्प्रेडशीट और डेटाबेस तक पहुँचता है।

CSV (Comma-Separated Values) RFC 4180 द्वारा परिभाषित है। प्रत्येक पंक्ति एक record है, और पंक्ति के भीतर फ़ील्ड एक सीमांकक वर्ण द्वारा अलग होते हैं, जो सामान्यतः अल्पविराम होता है। सीमांकक, दोहरे उद्धरण चिह्न या पंक्ति विराम वाले फ़ील्ड को दोहरे उद्धरण चिह्नों में बंद करना आवश्यक है, और आंतरिक उद्धरण चिह्नों को दोगुना करके escape किया जाता है। यही एस्केपिंग JSON-to-CSV कनवर्टर लिखते समय त्रुटियों का प्रमुख स्रोत है।

जब आपका इनपुट समान कुंजियों वाले ऑब्जेक्ट के एक सपाट ऐरे के रूप में हो, तो रूपांतरण सीधा होता है। प्रत्येक ऑब्जेक्ट एक पंक्ति बनता है और प्रत्येक अद्वितीय कुंजी एक स्तंभ शीर्षक बनती है। नेस्टेड ऑब्जेक्ट और ऐरे के लिए समतलीकरण (flattening) आवश्यक है, और ऑब्जेक्ट में असंगत कुंजियों के लिए अनुपस्थित फ़ील्ड को संभालने की रणनीति चाहिए — सामान्यतः सेल को रिक्त छोड़ा जाता है। एक विश्वसनीय कनवर्टर इन सभी सीमांत परिस्थितियों को स्वचालित रूप से संभालता है।

JSON को CSV में क्यों बदलें?

API JSON लौटाते हैं, लेकिन स्प्रेडशीट, SQL डेटाबेस और BI उपकरण सारणीबद्ध डेटा की अपेक्षा करते हैं। JSON को CSV में बदलना इन प्रणालियों के बीच कस्टम आयात स्क्रिप्ट लिखे बिना डेटा स्थानांतरित करने की सुविधा देता है।

तत्काल ब्राउज़र रूपांतरण
अपना JSON चिपकाएँ और फ़ाइल तुरंत डाउनलोड करें। कोई सर्वर अपलोड नहीं, कोई फ़ाइल आकार सीमा नहीं, processing queue में कोई इंतज़ार नहीं।
🔒
गोपनीयता-केंद्रित प्रसंस्करण
आपका डेटा आपके ब्राउज़र में ही रहता है। रूपांतरण पूरी तरह आपके डिवाइस पर JavaScript में चलता है। डेटाबेस निर्यात, उपयोगकर्ता अभिलेख और वित्तीय डेटा कभी भी आपकी मशीन नहीं छोड़ते।
🔀
एकाधिक सीमांकक समर्थन
अल्पविराम, सेमीकोलन, टैब या पाइप डेलिमिटर में से चुनें। European locale की स्प्रेडशीट के लिए सेमीकोलन, Unix उपकरणों के लिए TSV फ़ाइलें, या पुराने सिस्टम आयात के लिए पाइप का उपयोग करें।
📋
कोई खाता आवश्यक नहीं
पृष्ठ खोलें और रूपांतरित करें। कोई साइनअप नहीं, कोई API कुंजी नहीं, कोई CLI install नहीं। किसी भी modern browser वाले device पर काम करता है।

JSON से CSV उपयोग के मामले

स्प्रेडशीट के लिए API डेटा निर्यात
REST API JSON लौटाते हैं। उत्पाद प्रबंधकों और विश्लेषकों को वह डेटा Excel या Google Sheets में चाहिए। API प्रतिक्रिया को CSV में बदलें और उसे किसी भी स्प्रेडशीट अनुप्रयोग में सीधे खोलें।
डेटाबेस Bulk Import
PostgreSQL COPY, MySQL LOAD DATA और SQLite .import सभी CSV स्वीकार करते हैं। कस्टम import script लिखे बिना fast bulk loading के लिए अपने dataset को tabular format में बदलें।
ETL पाइपलाइन प्रोटोटाइपिंग
ETL पाइपलाइनों में अक्सर ऐसे मध्यवर्ती आउटपुट होते हैं जिन्हें कच्चे JSON के रूप में जाँचना कठिन होता है। किसी चरण के आउटपुट को CSV में बदलें और पूरी पाइपलाइन जोड़ने से पहले रूपांतरणों को स्प्रेडशीट में सत्यापित करें।
QA परीक्षण डेटा तैयारी
QA इंजीनियर JSON के रूप में परीक्षण फ़िक्सचर बनाते हैं, लेकिन अनेक परीक्षण फ़्रेमवर्क और डेटा-चालित परीक्षण उपकरण पैरामीटराइज़्ड परीक्षण इनपुट के लिए CSV स्वीकार करते हैं। मैन्युअल पुनर्स्वरूपण के बिना फ़िक्सचर को CSV में बदलें।
लॉग विश्लेषण और रिपोर्टिंग
अनुप्रयोगों और क्लाउड सेवाओं के संरचित JSON लॉग को Tableau, Power BI या Looker जैसे BI उपकरणों में visualization और रिपोर्टिंग के लिए CSV में बदलकर आयात किया जा सकता है।
शैक्षणिक डेटा प्रसंस्करण
खुले डेटा API के साथ काम करने वाले छात्र और शोधकर्ता JSON प्रतिक्रियाएँ प्राप्त करते हैं। CSV में बदलने से पार्सिंग कोड लिखे बिना R, pandas, SPSS या Excel में विश्लेषण संभव होता है।

CSV डेलिमिटर संदर्भ

डेलिमिटर वर्ण प्रत्येक पंक्ति में फ़ील्ड को अलग करता है। अल्पविराम सबसे सामान्य है, लेकिन विशिष्ट संदर्भों में अन्य डेलिमिटर मानक हैं। गलत डेलिमिटर चुनने से फ़ाइल खोलने पर फ़ील्ड गलत तरीके से मिल या विभाजित हो जाते हैं।

सीमांककवर्णएक्सटेंशनकब उपयोग करें
Comma,.csvDefault for most spreadsheets and databases
Semicolon;.csvStandard in locales where comma is a decimal separator (DE, FR, BR)
Tab\t.tsvAvoids escaping when field values contain commas or semicolons
Pipe|.csvUsed in fixed-width legacy systems and some ETL pipelines

CSV के लिए नेस्टेड JSON फ्लैट करना

CSV एक सपाट फ़ॉर्मेट है जिसमें नेस्टेड ऑब्जेक्ट या ऐरे को मूल रूप से दर्शाने का कोई तरीका नहीं है। जब आपके JSON में नेस्टेड संरचनाएँ हों, तो कनवर्टर को उन्हें स्तंभों में समतल करना होगा। इसके लिए कई रणनीतियाँ हैं, और सही चुनाव इस पर निर्भर करता है कि CSV का उपयोग कैसे किया जाएगा।

डॉट-संकेतन समतलीकरण
नेस्टेड कुंजियाँ डॉट से जोड़ी जाती हैं: {"address": {"city": "नई दिल्ली"}} address.city नाम के एक स्तंभ में बदल जाता है जिसका मान नई दिल्ली होगा। यह सबसे सामान्य तरीका है और नेस्टेड फ़ील्ड संदर्भों का समर्थन करने वाले उपकरणों के साथ अच्छी तरह काम करता है।
ऐरे अनुक्रमांक स्तंभ
ऐरे को क्रमांकित स्तंभों में विस्तारित किया जाता है: {"tags": ["a", "b"]} tags.0 = a, tags.1 = b बनता है। इससे सभी मान सुरक्षित रहते हैं लेकिन बड़े ऐरे होने पर अनेक स्तंभ बनते हैं।
JSON स्ट्रिंग वापसी
जटिल नेस्टेड मानों को CSV सेल के भीतर JSON string के रूप में serialize किया जाता है: सेल में कच्चा JSON पाठ होता है। इससे पूरी संरचना सुरक्षित रहती है लेकिन उपयोगकर्ता को सेल मान पार्स करना होता है।
नेस्टेड फ़ील्ड को अनदेखा करना
कुछ कनवर्टर नेस्टेड ऑब्जेक्ट और ऐरे को पूरी तरह छोड़ देते हैं, केवल scalar (string, number, boolean, null) फ़ील्ड रखते हैं। इससे clean CSV मिलता है लेकिन डेटा खो जाता है। यह केवल तभी उपयोगी है जब आप जानते हों कि नेस्टेड फ़ील्ड की आवश्यकता नहीं है।

कोड उदाहरण

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

JavaScript (Node.js)
const data = [
  { name: "Alice", age: 30, city: "Berlin" },
  { name: "Bob", age: 25, city: "Tokyo" },
]

// Extract headers from the first object
const headers = Object.keys(data[0])
const csv = [
  headers.join(","),
  ...data.map(row => headers.map(h => {
    const val = String(row[h] ?? "")
    // Quote fields that contain commas, quotes, or newlines
    return val.includes(",") || val.includes('"') || val.includes("\n")
      ? '"' + val.replace(/"/g, '""') + '"'
      : val
  }).join(","))
].join("\n")

console.log(csv)
// → name,age,city
// → Alice,30,Berlin
// → Bob,25,Tokyo
Python
import json, csv, io

json_str = '[{"name":"Alice","age":30,"city":"Berlin"},{"name":"Bob","age":25,"city":"Tokyo"}]'
data = json.loads(json_str)

output = io.StringIO()
writer = csv.DictWriter(output, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)

print(output.getvalue())
# → name,age,city
# → Alice,30,Berlin
# → Bob,25,Tokyo
CLI (jq + Miller)
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
  jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25

# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main

import (
    "encoding/csv"
    "encoding/json"
    "fmt"
    "os"
)

func main() {
    jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
    var data []map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    w := csv.NewWriter(os.Stdout)
    // Write header
    headers := []string{"name", "age"}
    w.Write(headers)
    // Write rows
    for _, row := range data {
        record := make([]string, len(headers))
        for i, h := range headers {
            record[i] = fmt.Sprintf("%v", row[h])
        }
        w.Write(record)
    }
    w.Flush()
    // → name,age
    // → Alice,30
    // → Bob,25
}

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

यह कनवर्टर किस JSON संरचना की अपेक्षा करता है?
कनवर्टर ऑब्जेक्ट के JSON ऐरे की अपेक्षा करता है, जैसे [{"name":"अर्जुन"},{"name":"प्रिया"}]'। ऐरे का प्रत्येक ऑब्जेक्ट आउटपुट में एक पंक्ति बनता है, और ऑब्जेक्ट की कुंजियाँ स्तंभ शीर्षक बनती हैं। एकल JSON ऑब्जेक्ट (ऐरे में नहीं) को एक-पंक्ति तालिका के रूप में माना जाता है।
नेस्टेड ऑब्जेक्ट और ऐरे को कैसे संभाला जाता है?
नेस्टेड मानों को डॉट संकेतन का उपयोग करके समतल किया जाता है। उदाहरण के लिए, {"address":{"city":"मुंबई"}'} address.city नाम का एक स्तंभ उत्पन्न करता है। ऐरे को अनुक्रमांकित स्तंभों में विस्तारित किया जाता है (tags.0, tags.1)। इससे डेटा सुरक्षित रहता है और आउटपुट सपाट बना रहता है।
जब ऑब्जेक्ट में भिन्न कुंजियाँ हों तो क्या होता है?
कनवर्टर ऐरे के सभी ऑब्जेक्ट में सभी अद्वितीय कुंजियाँ एकत्र करता है और उन्हें स्तंभ शीर्षक के रूप में उपयोग करता है। जिस ऑब्जेक्ट में कोई कुंजी अनुपस्थित हो, उस स्तंभ के लिए सेल रिक्त रहती है। कोई डेटा नहीं खोता, और स्तंभ क्रम उस क्रम का अनुसरण करता है जिसमें कुंजियाँ पहली बार प्रकट होती हैं।
क्या मैं अल्पविराम के बजाय सेमीकोलन या टैब उपयोग कर सकता हूँ?
हाँ। यह उपकरण अल्पविराम, सेमीकोलन, टैब और पाइप सीमांककों का समर्थन करता है। सेमीकोलन का उपयोग तब करें जब आपका डेटा या स्थानीय भाषा दशमलव विभाजक के रूप में अल्पविराम का उपयोग करती हो (जर्मन, फ्रेंच और ब्राज़ीलियाई स्प्रेडशीट में सामान्य)। Unix उपकरणों द्वारा उपयोग की जाने वाली TSV फ़ाइलों के लिए टैब उपयोग करें।
क्या रूपांतरण बिना डेटा हानि के होता है?
समान scalar मानों वाले सपाट JSON ऐरे के लिए, हाँ। आउटपुट फ़ाइल में समान डेटा होता है और उसे वापस JSON में बदला जा सकता है। नेस्टेड संरचनाओं के लिए, समतलीकरण डेटा का आकार बदल देता है। अनुक्रमांकित स्तंभों या JSON स्ट्रिंग में क्रमबद्ध ऐरे मानों को पुनर्निर्मित किया जा सकता है, लेकिन इसके लिए मूल संरचना की जानकारी आवश्यक है।
मैं कितनी बड़ी JSON फ़ाइल बदल सकता हूँ?
यह उपकरण आपके ब्राउज़र में चलता है और डेटा मेमोरी में संसाधित करता है — आधुनिक डिवाइस पर 10–20 MB तक की फ़ाइलें बिना किसी समस्या के बदली जा सकती हैं। इससे बड़ी फ़ाइलों के लिए jq, Miller या Python की csv मॉड्यूल वाली स्क्रिप्ट का उपयोग करें, जो डेटा को स्ट्रीम के रूप में संसाधित करते हैं।
क्या इस उपकरण में संवेदनशील डेटा चिपकाना सुरक्षित है?
हाँ। सभी प्रसंस्करण JavaScript का उपयोग करके आपके ब्राउज़र में होता है। कोई भी डेटा किसी सर्वर को नहीं भेजा जाता। आप इसे अपने ब्राउज़र के डेवलपर टूल खोलकर और रूपांतरण के दौरान Network टैब की जाँच करके सत्यापित कर सकते हैं।