ነጻ መለወጫ

YAML ወደ JSON መለወጫ

ፈጣን እና ደህንነቱ የተጠበቀ YAML ወደ JSON ልወጣ። ለማዋቀር ፋይሎች እና የውሂብ ትንተና ፍጹም።

ወይም

ስላዚህ መሳሪያ

YAML እና JSON በቅርበት የተያያዙ ቅርጸቶች ናቸው - JSON በቴክኒካል ጥብቅ የሆነ የ YAML 1.2 ንዑስ ስብስብ ነው - እና በመካከላቸው መለወጥ ብዙውን ጊዜ ቀላል ነው። YAML ለሰዎች ተስማሚ የሆኑ ባህሪያትን JSON ያክላል፡ አስተያየቶች፣ ሳያመልጡ ባለብዙ መስመር ሕብረቁምፊዎች፣ መልህቅ እና ተለዋጭ ማጣቀሻዎች፣ የበለጠ ተለዋዋጭ ጥቅሶች እና የተፈጥሮ ሰነድ አቀማመጥን የሚመስል ውስጠ-ገብ መዋቅር። ይህ YAML ለውቅረት ፋይሎች (Kubernetes manifests፣ GitHub Actions workflows፣ Docker Compose) JSON የኤፒአይ ክፍያ ጭነቶችን ይቆጣጠራል።

YAMLን ወደ JSON መቀየር ማለት ብዙውን ጊዜ የ YAML ለሰው ተስማሚ የሆኑ ተጨማሪ ነገሮችን መተው ማሽኖቹ በቀላሉ የሚተነተን እና የኤችቲቲፒ ኤፒአይዎች ልሳን በሆነው ቅርጸት ነው። አስተያየቶች ተጥለዋል (JSON ምንም የለውም)። መልህቅ ማመሳከሪያዎች ወደ ማጣቀሻ እሴቶቻቸው ተፈትተዋል። ባለብዙ መስመር ሕብረቁምፊዎች ወደ መደበኛ JSON ሕብረቁምፊዎች ከተከተቱ አዲስ መስመሮች ጋር ይወድቃሉ።

ይህ መቀየሪያ በጃቫ ስክሪፕት ውስጥ በብዛት ጥቅም ላይ የዋለውን YAML ላይብረሪ js-yaml በመጠቀም YAML ን ይተነትናል። ውፅዓት የሚመነጨው JSON.stringifyን በመጠቀም ከአማራጭ ውስጠ ጋር ነው። ልወጣው ሁሉንም መደበኛ YAML 1.2 አገባብ ያስተናግዳል የፍሰት ዘይቤን፣ የብሎክ ስታይልን፣ scalarsን፣ ቅደም ተከተሎችን፣ ካርታዎችን፣ መልህቆችን፣ ተለዋጭ ስሞችን እና መደበኛ የመለያ አይነቶችን ጨምሮ።

ለምን YAML ወደ JSON ቀይር

አብዛኛዎቹ ኤፒአይዎች እና ብዙ የፕሮግራም አወጣጥ አካባቢዎች JSON ይጠብቃሉ። በYAML የተፃፉ የማዋቀሪያ ፋይሎች ከኮድ ወይም JSON ከሚቀበሉ አገልግሎቶች ጋር ሲዋሃዱ ወደ JSON መቀየር አለባቸው። ለJSON መገልገያ እንዲሁ የበዛ ነው፡ jq፣ JSON Path፣ JSON Schema፣ እና ሰፊ የማረጋገጫዎች እና ትራንስፎርመሮች ስነ-ምህዳር ሁሉም የJSON ግብዓት ይወስዳሉ።

JSON እንዲሁ YAML በማይሆንባቸው መንገዶች አሻሚ ነው። የ YAML ተለዋዋጭነት የመተንተን አስገራሚ ነገሮችን ይፈጥራል - በYAML 1.1 ውስጥ 'አይ' እንደ ቡሊያን ውሸት ሲተነተን፣ የስሪት ሕብረቁምፊዎች እንደ ተንሳፋፊ ሲተነተን፣ የመግባት ስህተቶች ጸጥ ያሉ መዋቅራዊ ለውጦችን ይፈጥራሉ። ወደ JSON መቀየር ውሂቡን ወደ ብዙ አሻሚ ቅፅ ያደርገዋል።

እንዴት ይጠቀሙ

YAML ለጥፍ፣ JSON ያግኙ።

  1. የእርስዎን YAML ያክሉ: የYAML ጽሑፍን በግቤት ቦታ ላይ ለጥፍ ወይም .yml/.yaml ፋይል ጣል። js-yaml ሙሉውን YAML 1.2 አገባብ ይቀበላል።
  2. ቀይር: js-yaml YAMLን ወደ ጃቫስክሪፕት ነገር ይተነትናል፣ እና JSON.stringify በተከታታይ ባለ ሁለት ቦታ ውስጠ ያስገባዋል። አስተያየቶች ተጥለዋል፣ መልህቆች ተፈትተዋል፣ እና ልዩ የ YAML አይነቶች (የጊዜ ማህተሞች፣ ሁለትዮሽ ዳታ) ወደ JSON-ተኳሃኝ ውክልናዎች ተለውጠዋል።
  3. ውጤቱን ይገምግሙ: የJSON መዋቅር እርስዎ ከጠበቁት ጋር የሚዛመድ መሆኑን ያረጋግጡ። የ YAML ልቅ ትየባ ያልተጠበቁ የJSON እሴቶችን ያስገኘባቸውን ቦታዎች ለማየት ከምንጩ YAML ጋር ያወዳድሩ።
  4. ያውርዱ ወይም ይቅዱ: እንደ .json ያስቀምጡ ወይም ወደ ቅንጥብ ሰሌዳ ይቅዱ። ውጤቱ በማንኛውም የJSON ተንታኝ የሚሰራ JSON ነው።

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

ቴክኒካዊ ዝርዝሮች

js-yaml YAML 1.2ን በአማራጭ ድጋፍ ለYAML 1.1 quirks ('no'-as-false ጉዳይ፣ የስምንትዮሽ ቁጥሮች ያለ 0o ቅድመ ቅጥያ) ይተገብራል። ተንታኙ የጃቫ ስክሪፕት የዕቃ ዛፍ ያመነጫል፡- ቁጥሮችን፣ ሕብረቁምፊዎችን፣ ቡሊያንን፣ ባዶ፣ ድርድሮችን እና ግልጽ ነገሮችን በመጠቀም።

JSON.stringify የነገር ዛፉን ወደ JSON ተከታታይ ያደርገዋል። አማራጭ ማስገቢያ ቆንጆ-የታተመ ውፅዓት ያፈራል; ያለሱ ውጤቱ የታመቀ ነጠላ መስመር JSON ነው። ልዩ እሴቶች (NaN, Infinity, undefined) ልክ ያልሆኑ JSON; መቀየሪያው ባሉበት ቦታ እንዲሻሩ ያስገድዳቸዋል።

የጠርዝ ጉዳዮች፡ YAML የጊዜ ማህተሞች በJSON ውስጥ ISO-8601 ሕብረቁምፊዎች ይሆናሉ። YAML ሁለትዮሽ ውሂብ (base64-encoded) ሕብረቁምፊ ይሆናል። JSON ምንም የማመሳከሪያ አገባብ ስለሌለው መልህቆች እና ተለዋጭ ስሞች በJSON ውስጥ ወደተባዙ እሴቶች ተፈተዋል።

ምርጥ ልምዶች

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

YAML ወደ JSON መቀየር ይዘቱን ይቀይረዋል?
ይዘቱ በተቻለ መጠን በትክክል ተጠብቆ ይቆያል። ነገር ግን፣ አንዳንድ ቅርጸ-ተኮር ባህሪያት ቀጥተኛ አቻዎች ላይኖራቸው ይችላል፣ ስለዚህ ትንሽ የቅርጸት ልዩነቶች ሊከሰቱ ይችላሉ።
ለምን ውሂብ ወደ JSON ቅርጸት ይቀየራል?
JSON ለድር APIs እና JavaScript መተግበሪያዎች መደበኛ የውሂብ ቅርጸት ነው። በሰዎች ሊነበብ የሚችል፣ በፕሮግራሚንግ ቋንቋዎች በሰፊው የተደገፈ እና ከኤክስኤምኤል የበለጠ ቀላል አገባብ አለው።
ቀያሪው የጎጆ ወይም ውስብስብ የ YAML መዋቅሮችን ይይዛል?
አዎ። መሳሪያው በJSON ውፅዓት ውስጥ ያለውን ሙሉ የውሂብ መዋቅር በመጠበቅ የጎጆ ዕቃዎችን፣ ድርድሮችን እና ሁሉንም መደበኛ የ YAML ውሂብ አይነቶችን በትክክል ይተነትናል።
ይህ ልወጣ ደህንነቱ የተጠበቀ እና ግላዊ ነው?
አዎ። ሁሉም ማቀናበሪያ በአሳሽዎ ውስጥ በአካባቢው ይከናወናል። የእርስዎ ውሂብ መቼም ቢሆን ከመሣሪያዎ አይወጣም - ምንም የአገልጋይ ጭነት የለም፣ ምንም የደመና ሂደት የለም፣ ምንም የውሂብ መሰብሰብ የለም።
የእኔ YAML የጉዞ ጉዞ በንጽህና ይጓዛል?
በመዋቅር አዎን JSON ን እንደገና ወደ YAML መልሰው ከላኩት። አስተያየቶች እና መልህቅ መዋቅር ጠፍተዋል; ጥሬ እሴቶች ተጠብቀዋል.
የእኔ ውሂብ ወደ አገልጋይ ተሰቅሏል?
አይ js-yaml በአሳሽዎ ውስጥ ይሰራል።
ከፍተኛው መጠን ምን ያህል ነው?
እስከ 50 ሜባ. js-yaml የተለመዱ የውቅረት ፋይሎችን በቅጽበት ይቆጣጠራል; በጣም ትልቅ YAML ለመተንተን ጉልህ የሆነ ጊዜ ሊወስድ ይችላል።
ባለብዙ ሰነድ YAML ይደግፋል?
YAML በአንድ ፋይል ውስጥ ብዙ ሰነዶችን ይደግፋል ---። ቀያሪው የመጀመሪያውን ሰነድ በነባሪ ያስኬዳል; ለብዙ ሰነድ አያያዝ፣ YAML ን መጀመሪያ ይከፋፍሉት።