ነጻ መለወጫ

ኤክስኤምኤል ወደ JSON መለወጫ

የXML ውሂብን ወይም ፋይሎችን በአሳሽህ ውስጥ ወደ JSON ቅርጸት ቀይር። ብጁ ማስገባትን ይደግፋል እና የጎጆ መዋቅሮችን ይቆጣጠራል።

የኤክስኤምኤል ፋይልን ይምረጡ

ወይም እዚህ ጎትት እና ጣል

ወይም

ስላዚህ መሳሪያ

XML እና JSON ሁለቱም የመረጃ መለዋወጫ ቅርጸቶች ናቸው ነገር ግን ከተለያዩ የድሩ ዘመናት የመጡ ናቸው። ኤክስኤምኤል፣ በ1998 ደረጃውን የጠበቀ፣ እራሱን የሚገልፅ የማርክ ማድረጊያ ቅርጸት ከባህሪያት፣ የስም ቦታዎች እና የንድፍ ማረጋገጫ ጋር ተዘጋጅቷል። JSON በ2000ዎቹ መጀመሪያ ላይ ለጃቫ ስክሪፕት አሂድ ጊዜ እና ለዘመናዊ ኤፒአይዎች ተስማሚ የሆነ ቀላል ክብደት ያለው ቅርጸት ሆኖ ብቅ አለ። አብዛኞቹ አዳዲስ የድር APIs JSON ይናገራሉ; ብዙ የቆዩ ስርዓቶች - የሶፕ አገልግሎቶች፣ የአርኤስኤስ ምግቦች፣ የውቅር ፋይሎች፣ የድርጅት ውህደቶች - አሁንም ኤክስኤምኤልን ያመርታሉ። በመካከላቸው መለወጥ በዘመናዊ ልማት ውስጥ በጣም ከተለመዱት interop ተግባራት ውስጥ አንዱ ነው።

ሁለቱ ቅርጸቶች የተለያየ ገላጭ ሃይል ስላላቸው ልወጣው ፍፁም ኪሳራ የለውም። ኤክስኤምኤል ባህሪያት አሉት (JSON ቤተኛ ያልሆነው)፣ የጽሁፍ ይዘት እና የንጥል ስሞችን ይለያል፣ እና የተደባለቀ ይዘትን ይደግፋል (ሁለቱንም የጽሁፍ እና የልጅ አካላትን የያዙ አካላት)። የJSON ቀጥተኛ ነገር/አደራደር ሞዴል እነዚህን ባህሪያት በቀጥታ ሊወክል አይችልም፣ስለዚህ ለዋጮች ስምምነቶችን ይተገበራሉ፡ ባህሪያት @-ቅድመ-ቅጥያ ቁልፎች ይሆናሉ፣ የጽሁፍ ይዘት #የጽሁፍ ቁልፍ ይሆናል፣ እና የመሳሰሉት።

ይህ መቀየሪያ በአሳሹ አብሮ የተሰራውን DOMParser በመጠቀም ኤክስኤምኤልን ይተነተን እና የተገኘውን የDOM ዛፍ JSON ለማምረት ይራመዳል። ከወንድሞች እና እህቶች ጋር ተመሳሳይ የመለያ ስም ያላቸው ንጥረ ነገሮች በድርድር ይሰበሰባሉ; ባህሪያት ወደ ልዩ ቁልፎች ውስጥ ይገባሉ; የስም ቦታዎች እና የማስኬጃ መመሪያዎች ሲገኙ ተጠብቀዋል። ውጤቱ በሰው ሊነበብ የሚችል JSON ነው ዙር ጉዞዎች በምክንያታዊነት ወደ ኤክስኤምኤል ይመለሳሉ።

ኤክስኤምኤልን ወደ JSON ለምን ይለውጡ

አብዛኛው ዘመናዊ የመተግበሪያ ኮድ ለJSON የበለጠ ምቹ ነው። ጃቫ ስክሪፕት JSONን በትውልድ ይተነትናል፣ Python's json module በመደበኛው ቤተ-መጽሐፍት ውስጥ አለ፣ እና ሁሉም ሌሎች ቋንቋዎች ተመሳሳይ የአንደኛ ደረጃ JSON ድጋፍ አላቸው። የኤክስኤምኤል ሂደት ተጨማሪ ቤተ-መጻሕፍት ማስመጣት እና ተጨማሪ ቦይለር መጻፍ ይጠይቃል። ከሂደቱ በፊት ገቢ ኤክስኤምኤልን ወደ JSON መቀየር ብዙ ጊዜ ከውጫዊ ኤክስኤምኤል ምግብ ወደ ውስጣዊ የውሂብ መዋቅር ፈጣኑ መንገድ ነው።

መሳሪያ መስራት JSONንም ዘንበል ይላል። JSON ማስዋቢያዎች፣ አረጋጋጮች፣ ሼማ አረጋጋጮች፣ የጥያቄ ቋንቋዎች (jq፣ JSONPath) እና ተመልካቾች በብዛት ይገኛሉ። የኤክስኤምኤል አቻዎች ያነሱ እና ብዙ ጊዜ ያረጁ ናቸው። በJSON ውስጥ መሥራት የበለፀገ የመሣሪያዎች ሥነ-ምህዳርን ይከፍታል።

እንዴት ይጠቀሙ

XML ለጥፍ፣ JSON ያግኙ።

  1. የእርስዎን ኤክስኤምኤል ይለጥፉ ወይም ይስቀሉ።: የኤክስኤምኤል ጽሁፍ ወደ ግቤት ቦታ ለጥፍ ወይም ፋይል ጣል። ኤክስኤምኤል በደንብ የተሰራ መሆን አለበት; የተበላሸ ኤክስኤምኤል ከመገመት ይልቅ የትንታኔ ስህተትን ይፈጥራል።
  2. ቀይር: DOMparser DOM ይገነባል፣ ቀያሪው እያንዳንዱን አካል ይራመዳል፣ እና JSON የሚመነጨው የባህሪ ቁልፎችን (@attr) እና የጽሑፍ ይዘት ቁልፎችን (#text) በሚፈለግበት ነው። ተመሳሳይ ስም ያላቸው የእህት እና እህት ክፍሎች ድርድሮች ይሆናሉ።
  3. አወቃቀሩን ይከልሱ: ባህሪያት፣ ጽሑፍ እና መክተቻ እንደተጠበቀው ካርታ መያዛቸውን ለማረጋገጥ JSON ን ይመርምሩ። ጥቅም ላይ የዋሉት ስምምነቶች (ለምሳሌ @ ለባህሪያት) በውጤቱ ውስጥ ይታያሉ።
  4. ያውርዱ ወይም ይቅዱ: እንደ .json ያስቀምጡ ወይም ወደ ቅንጥብ ሰሌዳ ይቅዱ።

የተለመዱ የአጠቃቀም ጉዳዮች

ቴክኒካዊ ዝርዝሮች

DOMParser አሳሹ ለXHTML ገጾች ከሚጠቀምበት ጋር ተመሳሳይ የሆነ ኤክስኤምኤል DOM ይፈጥራል። ቀያሪው ይህንን DOM በተከታታይ ይራመዳል። ለእያንዳንዱ ኤለመንት የJSON ነገርን ይፈጥራል፡ ባህሪያት በ @ (ለምሳሌ @id፣ @class) ቅድመ ቅጥያ ያላቸው ቁልፎች ይሆናሉ። የሕፃኑ ንጥረ ነገሮች በተመሳሳይ መዋቅር ውስጥ ይደጋገማሉ ። የጽሑፍ ይዘት፣ ከልጆች ጋር ሲገኝ፣ በ#ጽሑፍ ቁልፍ ስር ይኖራል።

ተመሳሳይ የመለያ ስም ያላቸው ተደጋጋሚ የልጅ ክፍሎች በJSON ድርድር ውስጥ ይሰበሰባሉ። አንድ ስም ያለው ነጠላ ልጅ እንደ ዕቃ እሴት ሆኖ ይታያል; ብዙ ልጆች እንደ ዕቃ ድርድር ይታያሉ። ይህ ስምምነት በተግባር በደንብ ይሰራል ነገር ግን የJSON ቅርፅ የሚወሰነው ንጥረ ነገሮች አንድ ጊዜ ወይም ብዙ ጊዜ በመታየታቸው ላይ ነው - የታወቀ የXML-to-JSON ካርታ ስራ ጉድለት።

የስም ቦታዎች እንደ የአባል ስሞች አካል ተጠብቀዋል (ቅድመ ቅጥያ፡ የአካባቢ ስም)። የሂደት መመሪያዎች እና የሲዲኤታ ክፍሎች ወደ የጽሑፍ ይዘት ተለውጠዋል። የኤክስኤምኤል መግለጫዎች እና DOCTYPE ከJSON ውፅዓት የተነጠቁ ናቸው ነገር ግን በመረጃው ላይ ተጽዕኖ አያሳርፉም።

ምርጥ ልምዶች

በተደጋጋሚ የሚጠየቁ ጥያቄዎች

XML ወደ JSON መቀየር ይዘቱን ይቀይረዋል?
ይዘቱ በተቻለ መጠን በትክክል ተጠብቆ ይቆያል። ነገር ግን፣ አንዳንድ ቅርጸ-ተኮር ባህሪያት ቀጥተኛ አቻዎች ላይኖራቸው ይችላል፣ ስለዚህ ትንሽ የቅርጸት ልዩነቶች ሊከሰቱ ይችላሉ።
ለምን ውሂብን ወደ JSON ቅርጸት መለወጥ?
JSON ለድር APIs እና JavaScript መተግበሪያዎች መደበኛ የውሂብ ቅርጸት ነው። በሰዎች ሊነበብ የሚችል፣ በፕሮግራሚንግ ቋንቋዎች በሰፊው የተደገፈ እና ከኤክስኤምኤል የበለጠ ቀላል አገባብ አለው።
ቀያሪው የጎጆ ወይም ውስብስብ የኤክስኤምኤል መዋቅሮችን ይይዛል?
አዎ። መሳሪያው በJSON ውፅዓት ውስጥ ያለውን ሙሉ የውሂብ መዋቅር በመጠበቅ የጎጆ ዕቃዎችን፣ ድርድሮችን እና ሁሉንም መደበኛ የኤክስኤምኤል ውሂብ አይነቶችን በትክክል ይተነትናል።
ይህ ልወጣ ደህንነቱ የተጠበቀ እና ግላዊ ነው?
አዎ። ሁሉም ሂደት በአሳሽዎ ውስጥ በአካባቢው ይከናወናል። የእርስዎ ውሂብ መቼም ቢሆን ከመሣሪያዎ አይወጣም - ምንም የአገልጋይ ጭነት የለም፣ ምንም የደመና ሂደት የለም፣ ምንም የውሂብ መሰብሰብ የለም።
የCDATA ክፍሎች ይያዛሉ?
አዎ። የሲዲኤታ ይዘት በJSON ውፅዓት ወደ ግልጽ ጽሁፍ ይቀየራል። የሲዲኤታ መጠቅለያው ራሱ አልተጠበቀም, ግን ይዘቱ ነው.
የእኔ ውሂብ ወደ አገልጋይ ተሰቅሏል?
አይ DOMParser በአሳሽዎ ውስጥ ይሰራል። ልወጣው ሙሉ በሙሉ በመሣሪያዎ ላይ ይከሰታል።
የJSON ድጋሚ ጉዞ ወደ ኤክስኤምኤል ይመለሳል?
አዎን የተገላቢጦሹን ኮንቬንሽን ከተጠቀሙ (ከJSON እስከ ኤክስኤምኤል ያለው መሳሪያ ተመሳሳይ @attr እና #text ደንቦችን ይከተላል)። የክብ ጉዞው ለተለመደው ኤክስኤምኤል መዋቅርን ይጠብቃል; አንዳንድ የጠርዝ ጉዳዮች (የተደባለቀ የይዘት ቅደም ተከተል፣ የሂደት መመሪያዎች) በትክክል ሊኖሩ አይችሉም።
ከፍተኛው የግቤት መጠን ስንት ነው?
እስከ 50 ሜባ. DOMParser በአሳሽዎ ማህደረ ትውስታ የተገደበ ነው; በጣም ትልቅ የኤክስኤምኤል ፋይሎች ፍጥነት መቀነስ ወይም መተንተን ላይሳናቸው ይችላል።