JSON-ൽ നിന്ന് CSV-ലേക്കുള്ള പരിവർത്തന ഉപകരണം
എന്താണ് JSON-to-CSV പരിവർത്തന ഉപകരണം?
ഈ ഉപകരണം ഒരു JSON ഫയൽ അപ്ലോഡ് ചെയ്താൽ (അല്ലെങ്കിൽ ഡ്രാഗ് ആൻഡ് ഡ്രോപ്പ് ചെയ്താൽ) അതിനെ CSV ഫയലായി മാറ്റുന്നു. കൺവേർഷൻ പൂർത്തിയായ ശേഷം, ഒരു പ്രിവ്യൂ ടേബിൾ കാണിക്കും, വരികളുടെയും കോളങ്ങളുടെയും എണ്ണം, ഔട്ട്പുട്ട് ഫയലിന്റെ വലുപ്പം എന്നിവ പ്രദർശിപ്പിക്കും. പ്രധാനപ്പെട്ട കാര്യം, എല്ലാ പ്രോസസ്സിംഗും നിങ്ങളുടെ ബ്രൗസറിൽ തന്നെ നടക്കുന്നു; ഒരു വിവരവും സെർവറിലേക്ക് അപ്ലോഡ് ചെയ്യപ്പെടുന്നില്ല. ഇത് സ്വകാര്യത സംരക്ഷിക്കുന്ന ഒരു രീതിയാണ്.
ഇൻപുട്ട് ആയി ഒരു JSON ഫയൽ ആവശ്യമാണ്. ഔട്ട്പുട്ട് ഫോർമാറ്റ് CSV ആയിരിക്കും. ഡിലിമിറ്റർ കോമ, സെമികോളൺ, അല്ലെങ്കിൽ ടാബ് ആകാം.
ഈ ഉപകരണം മറ്റുള്ളവയിൽ നിന്ന് വ്യത്യസ്തമാകുന്നത് എങ്ങനെ?
CSV-ൽ നിന്ന് Excel-ലേക്കോ Excel-ൽ നിന്ന് JSON-ലേക്കോ ഉള്ള പരിവർത്തനങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായി, ഈ ദിശയിൽ ഒരു ഹൈറാർക്കിക്കൽ, ടൈപ്പ് ചെയ്ത ഡാറ്റ ഫോർമാറ്റായ JSON-നെ ഒരു ഫ്ലാറ്റ്, ടൈപ്പ് ഇല്ലാത്ത ടേബിൾ ആയ CSV-ലേക്ക് പരത്തുകയാണ് (flatten) ചെയ്യുന്നത്. JSON ഒബ്ജക്റ്റുകൾ, അറേകൾ, സംഖ്യകൾ, ബൂളിയനുകൾ, null എന്നിവയെ നെസ്റ്റഡ് ഘടനകളിൽ സംഭരിക്കുന്നു. CSV-ന് ടൈപ്പുകളില്ല, നെസ്റ്റിംഗ് ഇല്ല, ഷീറ്റുകൾ ഇല്ല. അതിനാൽ പരിവർത്തനം ടൈപ്പ് വിവരങ്ങൾ, നെസ്റ്റഡ് ഘടന, ഒന്നിലധികം ഷീറ്റുകൾ (JSON-ൽ ഇല്ലെങ്കിലും), ഫോർമാറ്റിംഗ് എന്നിവയെല്ലാം ഉപേക്ഷിക്കുന്നു.
ഒരു നെസ്റ്റഡ് JSON ഒബ്ജക്റ്റിനെ പരത്തിയ രീതിയിൽ CSV-ൽ പ്രതിനിധാനം ചെയ്യുന്നതിന്, ഉപകരണം ഒബ്ജക്റ്റ് കീകളെ ഡോട്ട്-പാത്ത് നൊട്ടേഷൻ ഉപയോഗിച്ച് പരത്തുന്നു (ഉദാഹരണത്തിന് address.city). ഒബ്ജക്റ്റുകളുടെ അറേകൾ ടേബിൾ വരികളായി മാറുന്നു; അറേകളുടെ അറേകൾ വരികളായി നിലനിർത്തുന്നു. CSV ഡിലിമിറ്ററുകൾ ഉപയോഗിക്കുന്നതിനാൽ, എംബെഡഡ് കോമകളും ലൈൻ ബ്രേക്കുകളും ക്വോട്ട് ചെയ്യേണ്ടതുണ്ട് — ഉപകരണം ഇത് സ്വയമേവ ചെയ്യുന്നു. എന്നാൽ നമ്പറുകളിലെ ലീഡിംഗ് സീറോകൾ നഷ്ടപ്പെട്ടേക്കാം. നെസ്റ്റഡ് ഫീൽഡുകളെ എങ്ങനെ പ്രതിനിധാനം ചെയ്യണമെന്ന് ഉപയോക്താവ് മുൻകൂട്ടി തീരുമാനിക്കണം (ഉപകരണം സ്വതവേ ഡോട്ട്-പാത്തുകൾ ഉപയോഗിക്കുന്നു).
ഇൻപുട്ടുകളും ഔട്ട്പുട്ടുകളും
ഇൻപുട്ടുകൾ:
- ഒരു JSON ഫയൽ
- CSV ഡിലിമിറ്റർ: കോമ, സെമികോളൺ, അല്ലെങ്കിൽ ടാബ്
ഔട്ട്പുട്ടുകൾ:
- ഡൗൺലോഡ് ചെയ്യാൻ തയ്യാറായ ഒരു CSV ഫയൽ
- പരിവർത്തനം ചെയ്ത ടേബിളിന്റെ പ്രിവ്യൂ
- വരികളുടെയും കോളങ്ങളുടെയും എണ്ണം
- ഔട്ട്പുട്ട് ഫയലിന്റെ വലുപ്പം
നിയമങ്ങളും അതിർത്തി വ്യവസ്ഥകളും
- ഉപകരണം ദൃശ്യമായ മൂല്യങ്ങൾ മാത്രമേ പരിവർത്തനം ചെയ്യുകയുള്ളൂ; ഫോർമുലകളോ കോഡുകളോ കണക്കാക്കില്ല.
- JSON ടേബിൾ ആകൃതിയിൽ (table-shaped) ആയിരിക്കണം — ഒബ്ജക്റ്റുകളുടെ ഒരു അറേ അല്ലെങ്കിൽ അറേകളുടെ ഒരു അറേ. JSON അസാധുവാണെങ്കിലോ ടേബിൾ ആകൃതിയിലല്ലെങ്കിലോ, “This JSON is invalid or not table-shaped.” എന്ന പിശക് കാണിക്കും.
- ഒബ്ജക്റ്റുകളുടെ അറേ → ഓരോ ഒബ്ജക്റ്റും ഒരു വരിയായി, ഒബ്ജക്റ്റ് കീകൾ കോളങ്ങളായി, നെസ്റ്റഡ് ഒബ്ജക്റ്റ് കീകൾ ഡോട്ട്-പാത്തുകളാൽ പരത്തപ്പെടും.
- അറേകളുടെ അറേ → ഓരോ ഇന്നർ അറേയും ഒരു വരിയായി, ഘടകങ്ങൾ കോളങ്ങളായി (ഒബ്ജക്റ്റ് കീകൾ ഇല്ല).
- JSON ടൈപ്പുകൾ സംരക്ഷിക്കപ്പെടുന്നില്ല — എല്ലാ മൂല്യങ്ങളും CSV-ൽ സ്ട്രിംഗുകളായി മാറും.
- നെസ്റ്റഡ് ഘടന നഷ്ടപ്പെടും; പരത്തപ്പെട്ട ഡോട്ട്-പാത്ത് പ്രതിനിധാനം മാത്രം അവശേഷിക്കും.
- CSV ക്വോട്ടിംഗ് നിയമങ്ങൾ (കോമകൾ, ലൈൻ ബ്രേക്കുകൾ, ക്വോട്ടുകൾ ഉള്ളിൽ) സ്വയമേവ പ്രയോഗിക്കും.
- ഫയൽ വലുപ്പ പരിധി: 8 MB. “This file is too large. Use a file under ‹max›.” എന്ന പിശക് കാണിക്കും.
- വരി/കോളം പരിധികൾ: 10,000 വരികൾ, 200 കോളങ്ങൾ. “ഈ ഫയലിൽ ടേബിൾ വരികളൊന്നുമില്ല.” എന്ന പിശക് കാണിക്കും.
- മറ്റ് പിശകുകൾ: “Choose a CSV, JSON or XLSX file.”, “Could not convert this file.”, “Conversion cancelled.”, “This conversion is taking too long. Try a smaller file.”.
- എല്ലാ പ്രോസസ്സിംഗും ക്ലയന്റ്-സൈഡിൽ മാത്രം; ഡാറ്റ ബ്രൗസറിൽ നിന്ന് പുറത്തുപോകുന്നില്ല.
ആർക്കാണ് ഈ ഉപകരണം ആവശ്യം?
- ഒരു JSON ഫയൽ (ഉദാ: ഒരു API റെസ്പോൺസിൽ നിന്ന്) ഉള്ള ആളുകൾക്ക്, Excel, Google Sheets പോലുള്ള സ്പ്രെഡ്ഷീറ്റ് സോഫ്റ്റ്വെയറിലേക്കോ ഡാറ്റാബേസ് ഇറക്കുമതിയിലേക്കോ CSV ഫോർമാറ്റിൽ ലോഡ് ചെയ്യണമെങ്കിൽ.
- സ്ട്രക്ചർ ചെയ്ത JSON ഡാറ്റയെ റിപ്പോർട്ടിംഗിനോ അനാലിസിസിനോ വേണ്ടി ഒരു ഫ്ലാറ്റ് ടേബിൾ രൂപത്തിലാക്കാൻ ആഗ്രഹിക്കുന്നവർ.
- ഡാറ്റ അപ്ലോഡ് ചെയ്യാതെ തന്നെ (സ്വകാര്യത സംവേദനക്ഷമമായ വർക്ക്ഫ്ലോകൾ) പരിവർത്തനം നടത്തേണ്ടവർ.
- ഒരു വ്യത്യസ്ത ഡിലിമിറ്റർ (ഉദാ: ഇംഗ്ലീഷ് ഇതര ലോക്കേലിനായി സെമികോളൺ) വ്യക്തമാക്കേണ്ടവർ.
- വേഗത്തിൽ ഡാറ്റ പൈപ്പ്ലൈനുകൾ പ്രോട്ടോടൈപ്പ് ചെയ്യുകയും ബ്രൗസറിൽ JSON-ൽ നിന്ന് CSV-ലേക്ക് പെട്ടെന്ന് പരിവർത്തനം ആവശ്യമായവർ.
JSON-ൽ നിന്ന് CSV-ലേക്കുള്ള പരിവർത്തനത്തിലെ സാങ്കേതിക വശങ്ങൾ
ഘടനാപരമായ വ്യത്യാസങ്ങൾ
JSON എന്നത് ഹൈറാർക്കിക്കൽ, ടൈപ്പ് ചെയ്ത ഫോർമാറ്റാണ്. ഒരു JSON ഒബ്ജക്റ്റിന് മറ്റ് ഒബ്ജക്റ്റുകളും അറേകളും സംഖ്യകളും ബൂളിയനുകളും null ഉം നെസ്റ്റ് ചെയ്യാൻ കഴിയും. CSV എന്നത് ഒരു ഫ്ലാറ്റ്, ടൈപ്പില്ലാത്ത ടേബിൾ ഫോർമാറ്റാണ്; ഓരോ സെല്ലിലും ഒരു സ്ട്രിംഗ് മാത്രമേ ഉണ്ടാകൂ. അതിനാൽ, JSON-ൽ ഉള്ള നെസ്റ്റിംഗ് CSV-ൽ പ്രതിനിധാനം ചെയ്യണമെങ്കിൽ അത് പരത്തേണ്ടതുണ്ട്.
ഡോട്ട്-പാത്ത് നൊട്ടേഷൻ
നെസ്റ്റഡ് JSON ഒബ്ജക്റ്റുകളെ പരത്തുന്നതിനുള്ള സാധാരണ രീതിയാണ് ഡോട്ട്-പാത്ത് ഉപയോഗിക്കുക. ഉദാഹരണത്തിന്:
{
"name": "John",
"address": {
"city": "New York",
"zip": "10001"
}
}
ഇത് CSV-ലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ ഇങ്ങനെയാകും:
| name | address.city | address.zip |
|---|---|---|
| John | New York | 10001 |
ഇവിടെ address എന്ന നെസ്റ്റഡ് ഒബ്ജക്റ്റ് address.city, address.zip എന്നീ രണ്ട് കോളങ്ങളായി പരത്തപ്പെട്ടു.
അറേകളുടെ കൈകാര്യം
JSON-ൽ ഒബ്ജക്റ്റുകളുടെ ഒരു അറേ (array of objects) ആണെങ്കിൽ, ഓരോ ഒബ്ജക്റ്റും ഒരു വരിയായി മാറും, കീകൾ കോളങ്ങളായും. അറേകളുടെ ഒരു അറേ (array of arrays) ആണെങ്കിൽ, ഓരോ ഇന്നർ അറേയും ഒരു വരിയായി മാറും, ഘടകങ്ങൾ കോളങ്ങളായും (കീകളില്ലാതെ).
ഡാറ്റ ടൈപ്പ് നഷ്ടം
JSON-ൽ ഉള്ള ടൈപ്പ് വിവരങ്ങൾ (സ്ട്രിംഗ്, നമ്പർ, ബൂളിയൻ, null) CSV-ൽ നഷ്ടമാകും. എല്ലാം സ്ട്രിംഗായി മാറും. ഉദാഹരണത്തിന്, true എന്ന ബൂളിയൻ "true" എന്ന സ്ട്രിംഗായി മാറും. null ഒരു ഒഴിഞ്ഞ സെല്ലായി മാറും. സംഖ്യകളിലെ ലീഡിംഗ് സീറോകൾ (ഉദാ: 00123) നഷ്ടപ്പെട്ട് 123 ആകും, കാരണം JSON സംഖ്യകൾ ലീഡിംഗ് സീറോകൾ നിലനിർത്തുന്നില്ല.
ഡിലിമിറ്ററുകളുടെ പ്രാധാന്യം
CSV എന്നാൽ "Comma-Separated Values" എന്നാണ്, എങ്കിലും കോമ, സെമികോളൺ, ടാബ് എന്നിവ ഡിലിമിറ്ററായി ഉപയോഗിക്കാം. കോമ ആണ് ഏറ്റവും സാധാരണം, പക്ഷേ ചില ലോക്കേലുകളിൽ (ഉദാ: ജർമ്മൻ) സെമികോളൺ ഉപയോഗിക്കുന്നു, കാരണം കോമ ദശാംശ ചിഹ്നമായി ഉപയോഗിക്കുന്നു. ഡിലിമിറ്റർ തിരഞ്ഞെടുപ്പ് CSV ഫയൽ തുറക്കുന്ന സോഫ്റ്റ്വെയറിനെ ആശ്രയിച്ചിരിക്കുന്നു. ഈ ഉപകരണം മൂന്ന് ഓപ്ഷനുകളും നൽകുന്നു.
ക്ലയന്റ്-സൈഡ് പ്രോസസ്സിംഗിന്റെ ഗുണങ്ങൾ
ഈ ഉപകരണം ഡാറ്റ സെർവറിലേക്ക് അയയ്ക്കുന്നില്ല, അതിനാൽ സ്വകാര്യത സംരക്ഷിക്കപ്പെടുന്നു. സെൻസിറ്റീവ് ഡാറ്റയുമായി പ്രവർത്തിക്കുമ്പോൾ ഇത് പ്രധാനമാണ്. കൂടാതെ, നെറ്റ്വർക്ക് ലേറ്റൻസി ഇല്ലാതെ വേഗത്തിൽ പരിവർത്തനം നടക്കും. എന്നാൽ, വലിയ ഫയലുകൾക്ക് ബ്രൗസറിന്റെ മെമ്മറി പരിധി ബാധകമാണ്.
പിശക് സാധ്യതകൾ
- JSON ടേബിൾ ആകൃതിയിലായിരിക്കണം.
- വളരെ വലിയ ഫയലുകൾ (8 MB-യ്ക്ക് മുകളിൽ) ബ്രൗസറിൽ ഹാംഗ് ചെയ്യാം.
- CSV-ൽ എംബെഡഡ് കോമകളോ ലൈൻ ബ്രേക്കുകളോ ഉണ്ടെങ്കിൽ, അവ ശരിയായി ക്വോട്ട് ചെയ്യണം; ഉപകരണം ഇത് ചെയ്യുന്നുണ്ടെങ്കിലും, ഉപയോക്താവ് ഔട്ട്പുട്ട് പരിശോധിക്കേണ്ടതുണ്ട്.
പതിവ് ചോദ്യങ്ങൾ
1. എന്തുകൊണ്ടാണ് എന്റെ JSON ഫയൽ പരിവർത്തനം ചെയ്യപ്പെടാത്തത്?
നിങ്ങളുടെ JSON ഒരു ടേബിൾ ആകൃതിയിലല്ലായിരിക്കാം — അതായത്, ഒബ്ജക്റ്റുകളുടെ അറേയോ അറേകളുടെ അറേയോ അല്ല. ഒരു സിംഗിൾ ഒബ്ജക്റ്റ് ആണെങ്കിൽ ({"a":1}) അത് ഒരു വരി ടേബിളായി പരിവർത്തനം ചെയ്യപ്പെടും.
2. CSV-ലെ ലീഡിംഗ് സീറോകൾ എന്തുകൊണ്ടാണ് നഷ്ടപ്പെടുന്നത്?
JSON സംഖ്യകൾക്ക് ലീഡിംഗ് സീറോകൾ ഉണ്ടാകാൻ കഴിയില്ല. നിങ്ങളുടെ സോഴ്സ് മൂല്യം "0123" (ഒരു സ്ട്രിംഗ്) ആണെങ്കിൽ, അത് 0123 ആയി തുടരും. അത് 0123 ഒരു സംഖ്യയായിരുന്നെങ്കിൽ, JSON പാഴ്സറുകൾ അതിനെ 123 എന്ന സംഖ്യയായി കണക്കാക്കും, കൂടാതെ ഉപകരണം 123 എന്ന് ഔട്ട്പുട്ട് ചെയ്യും. നിങ്ങൾക്ക് സീറോ നിലനിർത്തണമെങ്കിൽ, അത്തരം മൂല്യങ്ങൾ JSON-ൽ സ്ട്രിംഗുകളായി സൂക്ഷിക്കുക.
3. എന്റെ ഡാറ്റ സുരക്ഷിതമാണോ? അതെ, എല്ലാ പ്രോസസ്സിംഗും നിങ്ങളുടെ ബ്രൗസറിൽ തന്നെയാണ് നടക്കുന്നത്. ഒരു വിവരവും സെർവറിലേക്ക് അയയ്ക്കപ്പെടുന്നില്ല.
4. എനിക്ക് ഒന്നിലധികം JSON ഫയലുകൾ ഒറ്റ CSV-ലേക്ക് പരിവർത്തനം ചെയ്യാൻ കഴിയുമോ? ഇല്ല, ഈ ഉപകരണം ഒരു സമയം ഒരു ഫയൽ മാത്രമേ കൈകാര്യം ചെയ്യുകയുള്ളൂ.
5. JSON-ലെ നെസ്റ്റഡ് ഘടനകൾ എങ്ങനെയാണ് CSV-ൽ പ്രതിനിധാനം ചെയ്യപ്പെടുന്നത്?
ഉപകരണം ഡോട്ട്-പാത്ത് നൊട്ടേഷൻ ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, {"user": {"name": "Alice"}} എന്ന JSON user.name എന്ന ഒരു കോളമായി മാറും. ഇത് ഫ്ലാറ്റ് ടേബിളിൽ നെസ്റ്റിംഗ് നിലനിർത്തുന്നതിനുള്ള ഒരു സാധാരണ രീതിയാണ്.
6. CSV ഡിലിമിറ്ററായി ടാബ് തിരഞ്ഞെടുക്കുമ്പോൾ എന്ത് സംഭവിക്കും?
അപ്പോൾ ഔട്ട്പുട്ട് ഫയൽ TSV (Tab-Separated Values) ആയിരിക്കും, പക്ഷേ ഫയൽ എക്സ്റ്റൻഷൻ .csv ആയിരിക്കും. TSV ഫയലുകൾ സ്പ്രെഡ്ഷീറ്റ് സോഫ്റ്റ്വെയറുകളിൽ നന്നായി തുറക്കും, പ്രത്യേകിച്ച് ഡാറ്റയിൽ കോമകൾ ഉണ്ടെങ്കിൽ.