ഈ ടൂളിനെ കുറിച്ച്
XML, JSON എന്നിവ രണ്ടും ഡാറ്റാ ഇൻ്റർചേഞ്ച് ഫോർമാറ്റുകളാണ്, എന്നാൽ വെബിൻ്റെ വ്യത്യസ്ത കാലഘട്ടങ്ങളിൽ നിന്നാണ് വരുന്നത്. 1998-ൽ സ്റ്റാൻഡേർഡ് ചെയ്ത XML, ആട്രിബ്യൂട്ടുകൾ, നെയിംസ്പേസുകൾ, സ്കീമ മൂല്യനിർണ്ണയം എന്നിവ ഉപയോഗിച്ച് സ്വയം വിവരിക്കുന്ന മാർക്ക്അപ്പ് ഫോർമാറ്റായി രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു. JavaScript റൺടൈമുകൾക്കും ആധുനിക API-കൾക്കും കൂടുതൽ അനുയോജ്യമായ ഒരു ഭാരം കുറഞ്ഞ ഫോർമാറ്റായി 2000-കളുടെ തുടക്കത്തിൽ JSON ഉയർന്നുവന്നു. മിക്ക പുതിയ വെബ് API-കളും JSON സംസാരിക്കുന്നു; പല പഴയ സിസ്റ്റങ്ങളും - SOAP സേവനങ്ങൾ, RSS ഫീഡുകൾ, കോൺഫിഗറേഷൻ ഫയലുകൾ, എൻ്റർപ്രൈസ് ഇൻ്റഗ്രേഷനുകൾ - ഇപ്പോഴും XML നിർമ്മിക്കുന്നു. അവയ്ക്കിടയിൽ പരിവർത്തനം ചെയ്യുക എന്നത് ആധുനിക വികസനത്തിലെ ഏറ്റവും സാധാരണമായ ഇൻ്ററോപ്പ് ടാസ്ക്കുകളിൽ ഒന്നാണ്.
രണ്ട് ഫോർമാറ്റുകൾക്കും വ്യത്യസ്ത ആവിഷ്കാര ശക്തി ഉള്ളതിനാൽ പരിവർത്തനം പൂർണ്ണമായും നഷ്ടമാകില്ല. XML-ന് ആട്രിബ്യൂട്ടുകൾ ഉണ്ട് (അത് JSON നേറ്റീവ് ആയിട്ടല്ല), ടെക്സ്റ്റ് ഉള്ളടക്കവും എലമെൻ്റ് പേരുകളും തമ്മിൽ വേർതിരിക്കുന്നു, കൂടാതെ മിക്സഡ് ഉള്ളടക്കത്തെ പിന്തുണയ്ക്കുന്നു (ടെക്സ്റ്റും ചൈൽഡ് ഘടകങ്ങളും അടങ്ങിയിരിക്കുന്ന ഘടകങ്ങൾ). JSON-ൻ്റെ നേരായ ഒബ്ജക്റ്റ്/അറേ മോഡലിന് ഈ സവിശേഷതകളെ നേരിട്ട് പ്രതിനിധീകരിക്കാൻ കഴിയില്ല, അതിനാൽ കൺവെൻറുകൾ കൺവെൻഷനുകൾ പ്രയോഗിക്കുന്നു: ആട്രിബ്യൂട്ടുകൾ @-പ്രിഫിക്സ് ചെയ്ത കീകളായി മാറുന്നു, ടെക്സ്റ്റ് ഉള്ളടക്കം #ടെക്സ്റ്റ് കീ ആയി മാറുന്നു.
ഈ കൺവെർട്ടർ ബ്രൗസറിൻ്റെ ബിൽറ്റ്-ഇൻ DOMPparser ഉപയോഗിച്ച് XML പാഴ്സ് ചെയ്യുകയും JSON നിർമ്മിക്കാൻ തത്ഫലമായുണ്ടാകുന്ന DOM ട്രീയിലൂടെ നടക്കുകയും ചെയ്യുന്നു. സഹോദരങ്ങളുടെ അതേ ടാഗ് നാമമുള്ള ഘടകങ്ങൾ അറേകളായി ശേഖരിക്കുന്നു; ആട്രിബ്യൂട്ടുകൾ പ്രത്യേക കീകളിലേക്ക് പോകുന്നു; നെയിംസ്പെയ്സുകളും പ്രോസസ്സിംഗ് നിർദ്ദേശങ്ങളും ഉള്ളപ്പോൾ സംരക്ഷിക്കപ്പെടും. ഫലം മനുഷ്യർക്ക് വായിക്കാൻ കഴിയുന്ന JSON ആണ്, അത് ന്യായമായ രീതിയിൽ XML-ലേക്ക് മടങ്ങുന്നു.
എന്തുകൊണ്ടാണ് XML-ലേക്ക് JSON-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നത്
മിക്ക ആധുനിക ആപ്ലിക്കേഷൻ കോഡുകളും JSON-ന് കൂടുതൽ സൗകര്യപ്രദമാണ്. JavaScript പ്രാദേശികമായി JSON പാഴ്സ് ചെയ്യുന്നു, പൈത്തണിൻ്റെ json മൊഡ്യൂൾ സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിലാണ്, കൂടാതെ ഫലത്തിൽ മറ്റെല്ലാ ഭാഷകൾക്കും തത്തുല്യമായ ഫസ്റ്റ് ക്ലാസ് JSON പിന്തുണയുണ്ട്. XML പ്രോസസ്സിംഗിന് അധിക ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുകയും കൂടുതൽ ബോയിലർ പ്ലേറ്റ് എഴുതുകയും ചെയ്യേണ്ടതുണ്ട്. പ്രോസസ്സിംഗിന് മുമ്പ് ഇൻകമിംഗ് XML-നെ JSON-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നത് ബാഹ്യ XML ഫീഡിൽ നിന്ന് ആന്തരിക ഡാറ്റാ ഘടനയിലേക്കുള്ള ഏറ്റവും വേഗതയേറിയ പാതയാണ്.
ടൂളിംഗും JSON നെ ചായുന്നു. JSON ബ്യൂട്ടിഫയറുകൾ, വാലിഡേറ്ററുകൾ, സ്കീമ വാലിഡേറ്ററുകൾ, അന്വേഷണ ഭാഷകൾ (jq, JSONPath), കാഴ്ചക്കാർ എന്നിവ ധാരാളം ഉണ്ട്; XML തത്തുല്യങ്ങൾ കുറവും പലപ്പോഴും പഴയതുമാണ്. JSON-ൽ പ്രവർത്തിക്കുന്നത് ഉപകരണങ്ങളുടെ സമ്പന്നമായ ഒരു ആവാസവ്യവസ്ഥയെ അൺലോക്ക് ചെയ്യുന്നു.
സാങ്കേതിക വിശദാംശങ്ങൾ
XHTML പേജുകൾക്കായി ബ്രൗസർ ഉപയോഗിക്കുന്നതിന് സമാനമായ ഒരു XML DOM DOMPparser നിർമ്മിക്കുന്നു. കൺവെർട്ടർ ഈ DOM ആവർത്തിക്കുന്നു. ഓരോ ഘടകത്തിനും അത് ഒരു JSON ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നു: ആട്രിബ്യൂട്ടുകൾ @ എന്ന പ്രിഫിക്സ് ചെയ്ത കീകളാകുന്നു (ഉദാ. @id, @class); മൂലകത്തിൻ്റെ ചൈൽഡ് മൂലകങ്ങൾ അതേ ഘടനയിലേക്ക് പുനഃക്രമീകരിക്കപ്പെടുന്നു; ടെക്സ്റ്റ് ഉള്ളടക്കം, കുട്ടികൾക്കൊപ്പം ഉണ്ടായിരിക്കുമ്പോൾ, ഒരു #ടെക്സ്റ്റ് കീയുടെ കീഴിലാണ് ജീവിക്കുന്നത്.
ഒരേ ടാഗ് നാമമുള്ള ആവർത്തിച്ചുള്ള ചൈൽഡ് ഘടകങ്ങൾ ഒരു JSON അറേയിലേക്ക് ശേഖരിക്കുന്നു. തന്നിരിക്കുന്ന പേരിലുള്ള ഒരു കുട്ടി ഒബ്ജക്റ്റ് മൂല്യമായി ദൃശ്യമാകുന്നു; ഒന്നിലധികം കുട്ടികൾ വസ്തുക്കളുടെ ഒരു നിരയായി പ്രത്യക്ഷപ്പെടുന്നു. ഈ കൺവെൻഷൻ പ്രായോഗികമായി നന്നായി പ്രവർത്തിക്കുന്നു, എന്നാൽ JSON ആകൃതി ഘടകങ്ങൾ ഒന്നോ അതിലധികമോ തവണ ദൃശ്യമാകുമോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു - XML-to-JSON മാപ്പിംഗിൻ്റെ അറിയപ്പെടുന്ന അപൂർണത.
മൂലകങ്ങളുടെ പേരുകളുടെ (പ്രിഫിക്സ്:ലോക്കൽ നെയിം) ഭാഗമായി നെയിംസ്പെയ്സ് സംരക്ഷിച്ചിരിക്കുന്നു. പ്രോസസ്സിംഗ് നിർദ്ദേശങ്ങളും CDATA വിഭാഗങ്ങളും ടെക്സ്റ്റ് ഉള്ളടക്കത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു. XML ഡിക്ലറേഷനുകളും ഡോക്ടൈപ്പുകളും JSON ഔട്ട്പുട്ടിൽ നിന്ന് നീക്കം ചെയ്തെങ്കിലും ഡാറ്റയെ ബാധിക്കില്ല.
പതിവ് ചോദ്യങ്ങള്
- XML-നെ JSON-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നത് ഉള്ളടക്കത്തെ മാറ്റുമോ?
- ഉള്ളടക്കം കഴിയുന്നത്ര കൃത്യമായി സംരക്ഷിച്ചിരിക്കുന്നു. എന്നിരുന്നാലും, ചില ഫോർമാറ്റ്-നിർദ്ദിഷ്ട സവിശേഷതകൾക്ക് നേരിട്ടുള്ള തുല്യതകൾ ഉണ്ടാകണമെന്നില്ല, അതിനാൽ ചെറിയ ഫോർമാറ്റിംഗ് വ്യത്യാസങ്ങൾ ഉണ്ടാകാം.
- എന്തുകൊണ്ടാണ് ഡാറ്റ JSON ഫോർമാറ്റിലേക്ക് പരിവർത്തനം ചെയ്യുന്നത്?
- വെബ് API-കൾക്കും JavaScript ആപ്ലിക്കേഷനുകൾക്കുമുള്ള സ്റ്റാൻഡേർഡ് ഡാറ്റ ഫോർമാറ്റാണ് JSON. ഇത് മനുഷ്യർക്ക് വായിക്കാനാവുന്നതും പ്രോഗ്രാമിംഗ് ഭാഷകൾ വ്യാപകമായി പിന്തുണയ്ക്കുന്നതും XML-നേക്കാൾ ലളിതമായ വാക്യഘടനയുള്ളതുമാണ്.
- കൺവെർട്ടർ നെസ്റ്റഡ് അല്ലെങ്കിൽ സങ്കീർണ്ണമായ XML ഘടനകൾ കൈകാര്യം ചെയ്യുന്നുണ്ടോ?
- അതെ. നെസ്റ്റഡ് ഒബ്ജക്റ്റുകൾ, അറേകൾ, കൂടാതെ എല്ലാ സ്റ്റാൻഡേർഡ് എക്സ്എംഎൽ ഡാറ്റ തരങ്ങളും ടൂൾ ശരിയായി പാഴ്സ് ചെയ്യുന്നു, JSON ഔട്ട്പുട്ടിൽ മുഴുവൻ ഡാറ്റാ ഘടനയും സംരക്ഷിക്കുന്നു.
- ഈ പരിവർത്തനം സുരക്ഷിതവും സ്വകാര്യവുമാണോ?
- അതെ. എല്ലാ പ്രോസസ്സിംഗും നിങ്ങളുടെ ബ്രൗസറിൽ പ്രാദേശികമായി നടക്കുന്നു. നിങ്ങളുടെ ഡാറ്റ ഒരിക്കലും നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്തുപോകില്ല - സെർവർ അപ്ലോഡ് ഇല്ല, ക്ലൗഡ് പ്രോസസ്സിംഗ് ഇല്ല, ഡാറ്റ ശേഖരണമില്ല.
- CDATA വിഭാഗങ്ങൾ കൈകാര്യം ചെയ്യുന്നുണ്ടോ?
- അതെ. CDATA ഉള്ളടക്കം JSON ഔട്ട്പുട്ടിൽ പ്ലെയിൻ ടെക്സ്റ്റിലേക്ക് പരിവർത്തനം ചെയ്തു. CDATA റാപ്പിംഗ് തന്നെ സംരക്ഷിക്കപ്പെട്ടിട്ടില്ല, എന്നാൽ ഉള്ളടക്കം.
- എൻ്റെ ഡാറ്റ ഒരു സെർവറിലേക്ക് അപ്ലോഡ് ചെയ്തിട്ടുണ്ടോ?
- നമ്പർ. നിങ്ങളുടെ ബ്രൗസറിൽ DOMPparser പ്രവർത്തിക്കുന്നു; പരിവർത്തനം പൂർണ്ണമായും നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭവിക്കുന്നു.
- XML-ലേക്ക് JSON റൗണ്ട് ട്രിപ്പ് തിരികെ പോകുമോ?
- അതെ, നിങ്ങൾ വിപരീത കൺവെൻഷൻ ഉപയോഗിക്കുകയാണെങ്കിൽ (JSON മുതൽ XML വരെ ടൂൾ @attr, #text നിയമങ്ങൾ പിന്തുടരുന്നു). റൗണ്ട് ട്രിപ്പ് സാധാരണ XML-നുള്ള ഘടനയെ സംരക്ഷിക്കുന്നു; ചില എഡ്ജ് കേസുകൾ (മിക്സഡ്-ഉള്ളടക്ക ക്രമം, പ്രോസസ്സിംഗ് നിർദ്ദേശങ്ങൾ) പൂർണ്ണമായി നിലനിൽക്കില്ല.
- പരമാവധി ഇൻപുട്ട് വലുപ്പം എന്താണ്?
- 50 MB വരെ. DOMPparser നിങ്ങളുടെ ബ്രൗസറിൽ മെമ്മറി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു; വളരെ വലിയ XML ഫയലുകൾ വേഗത കുറയുകയോ പാഴ്സ് ചെയ്യുന്നതിൽ പരാജയപ്പെടുകയോ ചെയ്യാം.