Skip to content

محوّل YAML إلى JSON

الصق YAML واحصل على JSON فوراً. تحويل مباشر في متصفّحك. يدعم بيانات Kubernetes ومواصفات OpenAPI وقيم Helm. خصوصية 100%، بدون رفع ملفات.

بدون تتبّع يعمل في المتصفّح مجاني
الخيارات · مسافتان
المسافة البادئة
0 حرف
JSON الإخراج
0 سطر
تمت المراجعة للتوافق مع مواصفة YAML 1.2 وتوسيع المراسي/المراجع وصحة معالجة الوثائق المتعددة — Go Tools Engineering Team · May 4, 2026

ما هو JSON؟

JSON (ترميز كائنات JavaScript) هو تنسيق خفيف لتبادل البيانات النصية موحَّد كمعيار RFC 8259 وECMA-404. يدعم ستة أنواع بيانات — سلاسل نصية وأرقام وقيم منطقية وnull ومصفوفات وكائنات — بصياغة صارمة وبسيطة يمكن لكل لغة برمجة وواجهة برمجية تقريباً تحليلها بشكل أصلي. بينما يُعدّ YAML التنسيق المفضل لملفات الإعداد المكتوبة يدوياً (Kubernetes، GitHub Actions، Ansible، قيم Helm)، يُعدّ JSON التنسيق الآلي العالمي للواجهات البرمجية والأتمتة والمعالجة البرمجية للبيانات.

تتميز هذه الأداة بأربعة مزايا مقارنة بالمحوّلات النموذجية:

**1. معالجة YAML متعدد الوثائق.** يدعم YAML وثائق متعددة في تيار واحد مفصولة بـ ---. تستخدم هذه الأداة parseAllDocuments من مكتبة eemeli/yaml مع خيارات { version: '1.2', merge: true } وتُعيد الوثيقة الأولى بصيغة JSON. إذا احتجت إلى جميع الوثائق، قسّم على --- وحوّل كل واحدة منفصلاً.

**2. توسيع المراسي والمراجع.** تسمح مراسي YAML (&name) ومراجعها (*name) بإعادة استخدام كتل البيانات. تُوسِّع هذه الأداة بالكامل جميع المراسي والمراجع (بما في ذلك مفاتيح الدمج: <<: *anchor) بحيث يحتوي إخراج JSON على بيانات كاملة ومستقلة بذاتها دون أي مراجع. انظر كيف تُعالَج في الاتجاه المعاكس على محوّل JSON إلى YAML.

**3. فقدان التعليقات — شفافية تعليمية.** يدعم YAML تعليقات #، التي تُستخدَم كثيراً في بيانات Kubernetes وقيم Helm وكتب تشغيل Ansible. لا تحتوي JSON على صيغة تعليق، لذا تُحذف التعليقات نهائياً أثناء التحويل. هذا ليس خطأً — إنه فرق جوهري في التنسيق. انظر مقالنا التفصيلي عن الفروقات بين YAML وJSON لمزيد من المعلومات.

**4. خصوصية 100% قائمة على المتصفح.** بيانات YAML الخاصة بك — التي كثيراً ما تحتوي على أسرار Kubernetes وبيانات اعتماد قواعد البيانات وقيم Helm الداخلية — لا تغادر متصفحك أبداً. لا تُرسَل أي بيانات إلى أي خادم. بعد التحويل إلى JSON، يمكنك التحقق من النتيجة وتنسيقها باستخدام منسّق JSON قبل استخدامها لاحقاً.

// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';

const yamlString = `apiVersion: apps/v1
kind: Deployment`;

// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });

// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);

console.log(json);
// {
//   "apiVersion": "apps/v1",
//   "kind": "Deployment"
// }

الميزات الرئيسية

تحويل مباشر

يتحدث إخراج JSON فوراً أثناء الكتابة أو لصق YAML — دون الحاجة إلى زر «تحويل». تتحول المدخلات الكبيرة (أكثر من 200 كيلوبايت) تلقائياً إلى الوضع اليدوي للحفاظ على استجابة المتصفح.

مسافة بادئة مسافتين أو 4 مسافات

التبديل بين مسافتين و4 مسافات للمسافة البادئة في إخراج JSON. مسافتان معيار لمعظم الأدوات والواجهات البرمجية؛ 4 مسافات تتطابق مع بعض أدلة الأسلوب وافتراضيات المحررات.

دعم YAML متعدد الوثائق

يتعامل مع تيارات YAML التي تحتوي على وثائق متعددة مفصولة بـ ---. تُحوَّل الوثيقة الأولى إلى JSON وتُعاد. مفيد لملفات Kubernetes متعددة الموارد وكتب تشغيل Ansible.

توسيع المراسي والمراجع

يُوسِّع بالكامل مراسي YAML (&name) ومراجعها (*name)، بما في ذلك مفاتيح الدمج (<<: *anchor). يحتوي إخراج JSON على بيانات كاملة ومُحلَّلة المراجع دون مراجع — السلوك الصحيح إذ لا يمتلك JSON مكافئاً.

خصوصية 100% قائمة على المتصفح

يعمل التحويل كلياً محلياً في متصفحك باستخدام JavaScript. بيانات YAML الخاصة بك — بما في ذلك الأسرار وبيانات الاعتماد والإعدادات الإنتاجية — لا تُرسَل إلى أي خادم، ولا تُسجَّل، ولا تُخزَّن.

دعم K8s وCompose وHelm وOpenAPI

مُحسَّنة لحالات استخدام DevOps الحقيقية: بيانات Kubernetes، ومجموعات Docker Compose، وقيم Helm chart، وسير عمل GitHub Actions، ومواصفات OpenAPI، وكتب تشغيل Ansible — مع أمثلة لكل منها.

أمثلة

بيان Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: production
  labels:
    app: my-app
    version: 1.0.0
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app:1.0.0
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: 64Mi
              cpu: 250m
            limits:
              memory: 128Mi
              cpu: 500m

تحويل بيان نشر Kubernetes من YAML إلى JSON — مفيد للاستعلام باستخدام jq أو الإرسال إلى Kubernetes API أو تغذيته إلى Terraform وخطوط CI/CD

Docker Compose

version: '3.9'
services:
  web:
    image: nginx:1.25-alpine
    ports:
      - '80:80'
      - '443:443'
    environment:
      NGINX_HOST: example.com
      NGINX_PORT: '80'
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

تحويل ملف Docker Compose YAML إلى JSON للمعالجة البرمجية أو التغذية في سكريبتات الأتمتة أو معالجته بأدوات JavaScript

سير عمل GitHub Actions

name: CI
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: pnpm
      - name: Install dependencies
        run: pnpm install --frozen-lockfile
      - name: Run tests
        run: pnpm test

تحليل ملف YAML لسير عمل GitHub Actions إلى JSON للاستعلام عن حقول محددة أو التحقق من البنية أو التكامل مع واجهات برمجية تستهلك JSON

مواصفة OpenAPI

openapi: 3.0.3
info:
  title: User API
  version: 1.0.0
  description: Manage application users
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
  /users/{id}:
    get:
      summary: Get user
      operationId: getUser
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
          format: email

تحويل مواصفة OpenAPI 3.0 من YAML إلى JSON للاستخدام مع مولّدات كود العميل أو أدوات اختبار API أو فحص المخطط برمجياً

Helm values.yaml

replicaCount: 3
image:
  repository: my-app
  tag: 1.0.0
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 80
ingress:
  enabled: true
  className: nginx
  hosts:
    - host: my-app.example.com
      paths:
        - path: /
          pathType: Prefix
resources:
  requests:
    memory: 64Mi
    cpu: 250m
  limits:
    memory: 128Mi
    cpu: 500m
autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 80

تحويل ملف Helm chart values.yaml إلى JSON للتحليل أو توليد التقارير أو تغذيته في أدوات تتوقع إعداداً بصيغة JSON

كتاب تشغيل Ansible

- name: Configure web servers
  hosts: webservers
  become: true
  vars:
    http_port: 80
    max_clients: 200
  tasks:
    - name: Ensure nginx is installed
      ansible.builtin.package:
        name: nginx
        state: present
    - name: Start nginx service
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true
    - name: Copy nginx config
      ansible.builtin.template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
        owner: root
        group: root
        mode: '0644'
      notify:
        - Restart nginx
  handlers:
    - name: Restart nginx
      ansible.builtin.service:
        name: nginx
        state: restarted

تحليل ملف YAML لكتاب تشغيل Ansible إلى JSON لفحص بنية المهام أو مراجعة الإعدادات أو التكامل مع خطوط إعداد التقارير

كيفية الاستخدام

  1. 1

    الصق بيانات YAML

    أدخل أو الصق بيانات YAML في حقل الإدخال أعلاه. يمكنك أيضاً النقر على «تحميل مثال» لتجربة عينة كبيان نشر Kubernetes أو ملف Docker Compose أو Helm values.yaml.

  2. 2

    شاهد إخراج JSON مباشرة

    يظهر JSON فوراً في لوحة الإخراج. اضبط الخيارات (المسافة البادئة مسافتان أو 4 مسافات) لتتطابق مع متطلبات الأداة المستهدفة.

  3. 3

    انسخ أو حمّل

    انقر على «انسخ» لنقل JSON إلى الحافظة، أو «تحميل» لحفظه كملف .json جاهز لاستخدامه مع jq أو استدعاءات API أو أي أداة لاحقة.

أخطاء YAML الشائعة

مسافة بادئة بعلامات الجدولة

تحظر مواصفة YAML أحرف الجدولة للمسافة البادئة — المسافات فقط مسموح بها. إذا كُتب ملف YAML أو نُسخ من محرر يستخدم علامات الجدولة، سيطرح المحلل خطأً. استبدل جميع مسافات الجدولة البادئة بمسافات (مسافتان أو 4 مسافات في كل مستوى).

✗ خطأ
services:
	web:
		image: nginx:1.25-alpine
✓ صحيح
services:
  web:
    image: nginx:1.25-alpine

مسافة بادئة غير متسقة

يستخدم YAML مسافة بادئة متسقة لتحديد التداخل. خلط أعداد مختلفة من المسافات داخل نفس الكتلة يُسبب أخطاء في التحليل. يجب أن يُزاد مستوى كل طبقة بنفس عدد المسافات طوال الوثيقة.

✗ خطأ
metadata:
  name: my-app
   namespace: production
✓ صحيح
metadata:
  name: my-app
  namespace: production

أحرف خاصة غير مقتبسة

أحرف مثل : و# و& و* و{ و} و[ و] و| و> و! لها معانٍ خاصة في YAML. استخدامها بدون اقتباس في القيم قد يُسبب أخطاء في التحليل أو سلوكاً غير متوقع. اقتبس القيم التي تحتوي على هذه الأحرف بعلامات اقتباس مفردة أو مزدوجة.

✗ خطأ
url: http://example.com:8080/api
tag: #latest
✓ صحيح
url: 'http://example.com:8080/api'
tag: '#latest'

دورات المراسي

يسمح YAML تقنياً بمراسٍ تُشير إلى نفسها (مراجع دائرية)، وإن كان ذلك نادراً في الممارسة. يُسبب مرساة دائرية دخول المحلل في حلقة توسيع لانهائية. تكتشف مكتبة eemeli/yaml المراسي الدائرية وتطرح خطأً بدلاً من التعليق.

✗ خطأ
# Circular anchor (rare but possible)
base: &base
  parent: *base
✓ صحيح
# Use explicit fields instead of circular references
base:
  parent: null

ارتباك الوثائق المتعددة

ملفات YAML التي تحتوي على فواصل --- متعددة تحتوي على وثائق متعددة. تُعيد هذه الأداة الوثيقة الأولى فقط بصيغة JSON. إذا توقعت بيانات من وثيقة لاحقة، فلن تظهر في الإخراج. قسّم YAML على --- وحوّل كل قسم بشكل منفصل إذا احتجت إلى جميع الوثائق.

✗ خطأ
# Only the first document is converted
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
✓ صحيح
# Convert each document separately
apiVersion: v1
kind: ConfigMap

فقدان التعليقات

يدعم YAML تعليقات # لكن JSON لا يدعمها. تُحذف جميع تعليقات YAML نهائياً أثناء التحويل — هذا فرق جوهري في التنسيق وليس قيداً في الأداة. إذا كنت بحاجة إلى الحفاظ على التعليقات كبيانات في JSON، رمّزها كحقل مخصص مثل مفتاح _comment.

✗ خطأ
# This comment will be lost
replicas: 3 # scale this up for production
✓ صحيح
replicas: 3
_comment: scale this up for production

حالات الاستخدام الشائعة

تحليل بيانات Kubernetes
تحويل بيانات Kubernetes YAML إلى JSON للاستعلام باستخدام jq، أو الإرسال إلى Kubernetes REST API، أو المعالجة في مصادر بيانات Terraform، أو التغذية في خطوط CI/CD التي تتوقع JSON.
تحويل Docker Compose لأدوات JavaScript
تحليل Docker Compose YAML إلى JSON لاستخراج تعريفات الخدمات وأسماء الصور وتعيينات المنافذ ومتغيرات البيئة للاستخدام في سكريبتات الأتمتة أو رسوم التبعيات أو أدوات Node.js.
تكامل GitHub Actions API
تحويل ملفات YAML لسير عمل GitHub Actions إلى JSON للتحقق من البنية برمجياً أو استخراج تعريفات المهام والخطوات أو التكامل مع واجهات برمجية لـ CI/CD تقبل مواصفات سير العمل بصيغة JSON.
تحويل OpenAPI لتوليد كود العميل
تقبل كثير من مولّدات الكود (openapi-generator، swagger-codegen) مواصفات OpenAPI بأي صيغة. حوّل مواصفة YAML إلى JSON عندما تتطلب أداة ما صراحةً مدخل JSON.
تحليل قيم Helm
تحويل ملف Helm chart values.yaml إلى JSON لتوليد التقارير أو مقارنة القيم عبر بيئات مختلفة أو تغذيتها في أدوات إنفاذ السياسات أو معالجتها بأتمتة تتوقع إعداداً بصيغة JSON.
ترحيل الإعدادات إلى أدوات قائمة على JSON
ترحيل إعداد التطبيق من YAML (شائع في أدوات البنية التحتية) إلى JSON للاستخدام في بيئات JavaScript أو واجهات REST API أو AWS AppConfig أو Azure App Configuration أو أي نظام يخزن الإعدادات بصيغة JSON.

تفاصيل تقنية

مواصفة YAML 1.2 عبر parseAllDocuments مع merge:true
يُحلَّل YAML باستخدام مكتبة eemeli/yaml (الإصدار v2.8+، آمن من الثغرات) عبر parseAllDocuments مع { version: '1.2', merge: true }. يضمن مخطط YAML 1.2 معاملة السلاسل النصية المجردة مثل yes وno كسلاسل نصية (وليس كقيم منطقية). يُوسِّع الخيار merge: true مفاتيح دمج المراسي/المراجع (<<: *anchor) بالكامل. يُعيد YAML متعدد الوثائق (مفصول بـ ---) الوثيقة الأولى.
توسيع المراسي والمراجع عبر المكتبة
تتعامل مكتبة eemeli/yaml مع توسيع المراسي (&name) والمراجع (*name) بأمان، بما في ذلك اكتشاف المراجع الدائرية. جميع كتل البيانات المُستعار إليها — بما في ذلك توسيعات مفتاح الدمج — مُضمَّنة بالكامل في إخراج JSON. هذا التحويل الصحيح إذ لا يمتلك JSON مفهوم المرسي أو المرجع. يمنع التوسيع الآمن للمكتبة الحلقات اللانهائية من YAML المشوَّه.
قائم على المتصفح — بدون رفع ملفات أو خادم
تتم جميع المعالجة كلياً في محرك JavaScript بمتصفحك. لا تُرسَل أي بيانات عبر الشبكة في أي وقت. تتحول المدخلات الأكبر من 200 كيلوبايت تلقائياً من الوضع المباشر إلى الوضع اليدوي (مطلوب نقر «تحويل» صريح) للحفاظ على استجابة المتصفح ومنع تعطّل مسار التنفيذ الرئيسي أثناء التسلسل الثقيل.

أفضل الممارسات

استخدم صياغة YAML 1.2 المتوافقة للتحويل النظيف
اكتب YAML باستخدام اتفاقيات YAML 1.2 — اقتبس قيم السلاسل النصية yes وno وon وoff وy وn صراحةً (مثلاً: enabled: 'yes') لتفادي الغموض. تُحلِّل هذه الأداة بمخطط YAML 1.2 (لذا هي سلاسل نصية)، لكن الأدوات الأقدم في خط أنابيبك قد تستخدم YAML 1.1 (حيث تصبح قيماً منطقية). الاقتباس الصريح في مصدر YAML هو الممارسة الأأمن عبر جميع المحللات.
اقتبس الأرقام الكبيرة في YAML للحفاظ على الدقة
لا يستطيع JavaScript تمثيل الأعداد الصحيحة الأكبر من 2^53 - 1 (9007199254740991) بدقة. يمكن أن تتجاوز حقول Kubernetes مثل resourceVersion وuid هذا الحد. اقتبس هذه القيم في مصدر YAML (resourceVersion: '9007199254740993') حتى يُعاملها المحلل كسلاسل نصية تُحفَظ بدقة في إخراج JSON.
تحقق من إخراج JSON قبل استخدامه في الواجهات البرمجية
بعد تحويل YAML إلى JSON، تحقق من النتيجة قبل إرسالها إلى واجهة برمجية أو تخزينها أو معالجتها برمجياً. استخدم منسّق JSON لتأكيد صحة البنية. هذا مهم بشكل خاص لاستدعاءات Kubernetes API ومواصفات OpenAPI وأي حمولة مُتحقَّق منها بـ JSON Schema.
افصل YAML متعدد الوثائق قبل التحويل
إذا احتوى ملف YAML على وثائق متعددة مفصولة بـ --- وأردت تحويلها جميعاً إلى JSON، قسّم الملف أولاً على --- وحوّل كل وثيقة بشكل منفصل. تأخذ هذه الأداة الوثيقة الأولى فقط. طريقة بسيطة: قسّم على '\n---\n' في محررك أو باستخدام awk، ثم الصق كل قسم بشكل منفصل.
استخدم jq لمعالجة JSON اللاحقة
بمجرد حصولك على JSON من YAML، يُعدّ jq الطريقة الأسرع للاستعلام وتحويله من سطر الأوامر. انسخ JSON المُحوَّل، ثم استخدم jq '.spec.replicas' أو jq '.services | keys' لاستخراج ما تحتاجه بالضبط. لمعالجة دُفعية لكثير من الملفات، استخدم واجهة yq CLI مع علم -o json مباشرة.

الأسئلة الشائعة

كيف أحوّل YAML إلى JSON عبر الإنترنت؟
الصق بيانات YAML في حقل الإدخال أعلاه، وتقوم الأداة بتحويلها فوراً إلى JSON في متصفحك دون الحاجة إلى نقر أي زر. يمكنك ضبط المسافة البادئة لإخراج JSON (مسافتان أو 4 مسافات) من لوحة الخيارات. بمجرد ظهور JSON في منطقة الإخراج، انقر على «انسخ» لنقله إلى الحافظة أو «تحميل» لحفظه كملف .json. كل شيء يعمل محلياً — لا تغادر بياناتك جهازك أبداً.
كيف تتعامل هذه الأداة مع YAML متعدد الوثائق (فاصل ---
يدعم YAML وثائق متعددة في تيار واحد مفصولة بـ --- (علامة بداية الوثيقة). عند لصق سلسلة YAML متعددة الوثائق، تستخدم هذه الأداة parseAllDocuments من مكتبة eemeli/yaml وتُعيد الوثيقة الأولى بصيغة JSON. تُتجاهَل الوثائق الإضافية بعد الأولى بصمت. إذا كنت بحاجة إلى معالجة جميع الوثائق، قسّم YAML على --- وحوّل كل قسم بشكل منفصل.
كيف تُعالَج المراسي والمراجع (&anchor و*alias) في YAML؟
تُعرَّف مراسي YAML (&name) وتُشير إليها المراجع (*name). تُوسِّع هذه الأداة بالكامل جميع المراسي والمراجع أثناء التحليل، بحيث يحتوي JSON الناتج على البيانات الكاملة المُحلَّة المراجع. هذا السلوك صحيح لـ JSON الذي لا يمتلك مفهوم المراجع. تتعامل مكتبة eemeli/yaml مع توسيع المراسي/المراجع بأمان، بما في ذلك اكتشاف المراجع الدائرية.
هل تُحفَظ تعليقات YAML في إخراج JSON؟
لا. لا يدعم JSON التعليقات بأي شكل — لا # ولا // ولا /* */. عند تحويل YAML إلى JSON، تضيع جميع التعليقات نهائياً. هذا فرق جوهري في التنسيق وليس قيداً في هذه الأداة. إذا كنت بحاجة إلى الحفاظ على التعليقات كبيانات، رمّزها كحقل JSON مخصص (مثل مفتاح _comment) قبل التحويل.
كيف أستخدم هذه الأداة مع بيان Kubernetes؟
الصق بيان Kubernetes YAML (من ملف .yaml أو إخراج kubectl get -o yaml أو قالب Helm) في حقل الإدخال. يمكن الاستعلام عن إخراج JSON بعدها بأداة jq، أو إرساله مباشرة إلى Kubernetes REST API، أو استخدامه في مصادر بيانات Terraform، أو معالجته بأي أداة تتوقع JSON. سير عمل شائع هو تحويل بيانات YAML إلى JSON لاستخراج حقول محددة — مثل jq '.spec.replicas' على إخراج JSON.
كيف تساعد هذه الأداة مع ملفات Docker Compose؟
ملفات Docker Compose هي YAML بالاتفاقية. يتيح تحويلها إلى JSON معالجة تعريفات الخدمات بأدوات JavaScript أو سكريبتات jq أو أي نظام يقرأ JSON. تشمل حالات الاستخدام الشائعة استخراج جميع أسماء الصور لبناء قائمة تبعيات، أو توليد تقارير من ملف compose، أو تغذية إعدادات Compose في أدوات تنسيق CI/CD التي تقبل JSON.
ما الفرق بين YAML 1.1 وYAML 1.2؟ وأيهما تستخدم هذه الأداة؟
تتعامل YAML 1.1 (المواصفة القديمة، التي لا تزال تستخدمها PyYAML وAnsible وRuby Psych وكثير من أدوات Kubernetes) مع السلاسل النصية المجردة مثل yes وno وon وoff كقيم منطقية. تسببت هذه الخاصية في مشكلة Norway الشهيرة حيث كان رمز الدولة «NO» يُحلَّل كـ false. أصلحت YAML 1.2 هذا: جميع السلاسل النصية المجردة هي سلاسل نصية، وفقط true/false تُعدّ قيمة منطقية. تستخدم هذه الأداة مخطط YAML 1.2 للتحليل، أي أن yes وno في مدخل YAML تُحفَظ كقيمتين نصيتين في إخراج JSON.
لماذا يحظر YAML استخدام علامات الجدولة للمسافة البادئة؟
تحظر مواصفة YAML صراحةً أحرف الجدولة (\t) للمسافة البادئة — المسافات فقط مسموح بها. هذا قرار تصميمي متعمد لتفادي الغموض الناجم عن اتساع علامات الجدولة المتفاوت عبر المحررات المختلفة. إذا استخدم ملف YAML علامات الجدولة للمسافة البادئة، سيطرح محلل YAML خطأ في التحليل. الإصلاح هو استبدال جميع علامات الجدولة بمسافات. إذا لصقت YAML وشاهدت خطأ يذكر «علامة جدولة» أو «المسافة البادئة»، فهذا السبب على الأرجح.
هل يمكن أن تفقد الأرقام الكبيرة دقتها عند تحويل YAML إلى JSON؟
نعم. هذا قيد أساسي في JavaScript يؤثر على جميع الأدوات القائمة على المتصفح. يستطيع نوع الفاصلة العائمة مزدوجة الدقة وفق IEEE 754 في JavaScript تمثيل الأعداد الصحيحة بدقة حتى 2^53 - 1 (9007199254740991) فقط. ستُقرَّب أرقام YAML الأكبر من ذلك — مثل حقل resourceVersion في Kubernetes من نوع int64 — بصمت. الحل الآمن هو إحاطة الأرقام الكبيرة بعلامات اقتباس في مصدر YAML حتى يُعاملها المحلل كسلاسل نصية.
كيف أحوّل YAML إلى JSON في سطر الأوامر؟
الطريقة الأكثر شيوعاً تستخدم yq (إصدار Mike Farah) وjq. ثبّت yq: استخدم brew install yq على macOS أو نزّله من github.com/mikefarah/yq/releases لنظام Linux. ثم نفّذ: yq -o json input.yaml لتحويل ملف YAML إلى JSON، أو cat input.yaml | yq -o json - للقراءة من الإدخال القياسي. للإخراج المُجمَّل: yq -o json input.yaml | jq .. مثال بلغة Python: python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml.
هل تُرسَل بيانات YAML إلى أي خادم عند استخدام هذه الأداة؟
لا. يتم التحويل كلياً في متصفحك باستخدام JavaScript. لا تُرسَل بيانات YAML عبر الشبكة، ولا تُخزَّن على أي خادم، ولا تُسجَّل أو تُحلَّل. هذا يجعل الأداة آمنة للاستخدام مع أسرار Kubernetes وبيانات اعتماد قواعد البيانات وقيم Helm الداخلية ومفاتيح API في ملفات الإعداد وأي إعداد بنية تحتية حساس آخر. يمكنك التحقق من ذلك بفتح تبويب «الشبكة» في متصفحك — لن ترى أي طلبات.
هل هناك حد لحجم ملف YAML المُدخَل؟
لا يوجد حد صارم لحجم الملف، لكن المدخلات الكبيرة (أكثر من 200 كيلوبايت) تتحول تلقائياً من وضع التحويل المباشر إلى الوضع اليدوي. في الوضع اليدوي، يظهر زر «تحويل» ويتم التحويل فقط عند النقر عليه. للملفات الكبيرة جداً (بحجم ميجابايتات متعددة)، يُنصح باستخدام أدوات سطر الأوامر مثل yq للحصول على أداء أفضل. تتعامل الأداة بكفاءة مع الأحمال الحقيقية النموذجية كتصدير كامل لمساحة أسماء Kubernetes ومواصفات OpenAPI الكبيرة وملفات قيم Helm chart.

أدوات ذات صلة

عرض جميع الأدوات →

محوّل Base64 — ترميز وفك ترميز أونلاين

الترميز والتنسيق

رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.

منسق JSON — التحقق والضغط وإصلاح الأخطاء

الترميز والتنسيق

نسّق JSON وتحقّق من صحته وأصلح الأخطاء فوراً — محرّر مجاني أونلاين يعمل في متصفّحك. يدعم الضغط والتجميل والتحويل. جرّبه الآن.

محوّل JSON إلى YAML

الترميز والتنسيق

الصق JSON واحصل على YAML فوراً. تحويل مباشر في متصفّحك، جاهز لـ Kubernetes وDocker Compose، مع حماية من مشكلة Norway. خصوصية 100%.

مرمّز ومفكك ترميز URL مع محلل روابط مدمج

الترميز والتنسيق

رمّز وفك ترميز روابط URL فوراً أونلاين — مع محلل روابط مدمج ووضعي encodeURI وencodeURIComponent. مجاني وخاص 100%. جرّبه الآن.

محوّل الأنظمة العددية — ثنائي وست عشري وعشري وثماني

أدوات التحويل

حوّل بين الأنظمة الثنائية والست عشرية والعشرية والثمانية وأي أساس من 2 إلى 36 فوراً — أداة مجانية أونلاين تعمل في متصفّحك. جرّبها الآن.

ضغط الصور — JPEG وPNG وWebP

أدوات التحويل

اضغط صور JPEG وPNG وWebP أونلاين مجاناً — بياناتك لا تغادر متصفّحك أبداً. قلّل حجم الصورة حتى 80% مع الحفاظ على الجودة. معالجة دفعية لـ 20 صورة.