ForHosting KIT · أدوات المطورين

تهريب سلسلة JSON

تتحول Say "hello" مع فاصل سطر ثم world إلى Say \"hello\"\nworld: ثلاث عمليات تهريب، والنتيجة جاهزة للصق بين علامتي اقتباس مزدوجتين دون إفساد المستند المحيط. وتعيد الأداة أيضًا النص المهرَّب إلى محارف عادية. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
النص
Say "hello" world
وضع الحساب
Encode
تحصل على
النتيجة
Say \"hello\"\nworld
الترميز
json_string
طول المُدخَل
17
طول المُخرَج
20

المسار حتمي بالكامل: نفس النص ونفس الوضع ينتجان دائمًا النتيجة نفسها، بلا استدعاءات شبكة ولا أملاح عشوائية ولا اختصارات تعتمد على التاريخ. تشمل الفحوصات البسيطة ترميز سطر يحتوي اقتباسًا وسطرًا جديدًا إلى صيغة بشرطة مائلة عكسية، وفك تهريب مسار يستخدم شرطات مزدوجة إلى فواصل حقيقية.

لماذا تكفي علامة اقتباس واحدة لإفساد مستند كامل

في مستند البيانات يوضع كل نص بين علامتي اقتباس مزدوجتين، وأول علامة اقتباس غير مهرَّبة تنهيه. لذلك تُكتب علامة الاقتباس التي هي جزء من النص نفسه بشرطة عكسية قبلها، وتُضاعَف الشرطة العكسية لأنها علامة التهريب، ولا يجوز أن تظهر محارف التحكم مثل فواصل الأسطر وعلامات الجدولة كما هي. في المثال تحتاج Say "hello" مع فاصل السطر وworld إلى ثلاث عمليات تهريب، علامتي اقتباس وفاصل السطر، فتصبح 17 محرفًا 20 محرفًا. الصق النتيجة بين علامتي الاقتباس ويبقى المستند سليمًا.

العودة إلى النص العادي والأخطاء التي تكشفها

يقوم فك التهريب بالعكس: يقرأ الأشكال القصيرة المعتادة لعلامة الاقتباس والشرطة العكسية والشرطة المائلة والرجوع للخلف وفاصل الصفحة وفاصل السطر والرجوع وعلامة الجدولة، إضافة إلى شكل الشرطة العكسية مع u وأربعة أرقام، ويعيد المحارف الحقيقية. ومسار الملف المكتوب بشرطات عكسية مزدوجة يعود بفواصل مفردة. وإذا احتوى النص تسلسلًا ناقصًا أو زوجًا غير مسموح أو علامة اقتباس منفردة أو محرف تحكم خامًا، تتوقف الأداة برسالة بدل أن تمرر الخطأ. والنص نفسه مع الخيار نفسه يعطي دائمًا النتيجة نفسها.

ما المحارف التي تُهرَّب عند encode؟

يعيد encode كتابة الاقتباس المزدوج والشرطة المائلة العكسية وbackspace وform-feed والسطر الجديد والإرجاع وtab وأي تحكم آخر في U+0000–U+001F ك \uXXXX. بقية المحارف تبقى دون تغيير.

هل النتيجة حتمية؟

نعم. نفس النص ونفس الوضع ينتجان دائمًا نفس النتيجة بلا شبكة ولا عشوائية ولا سلوك يعتمد على التاريخ.

هل تضيف الأداة علامتي الاقتباس الخارجيتين؟

لا. تعيد الأداة المحتوى الذي يوضع بين علامتي الاقتباس فقط، فتبقى علامتا الفتح والإغلاق في مستندك كما هما. وعند فك التهريب الصق أيضًا ما بداخلهما فقط.

كيف يُكتب فاصل السطر بين علامتي الاقتباس؟

يُكتب شرطةً عكسية يتبعها الحرف n. وتصبح علامة الجدولة شرطةً عكسية مع t، والرجوع شرطةً عكسية مع r، أما محارف التحكم التي ليس لها شكل قصير فتُكتب بشرطة عكسية وu وأربعة أرقام ست عشرية.

لماذا يُرفض النص الذي أريد فك تهريبه؟

لأنه يحتوي شيئًا لا يجوز في سلسلة مهرَّبة صحيحة: تسلسلًا ناقصًا، أو شرطة عكسية يتبعها حرف غير مسموح، أو علامة اقتباس مزدوجة منفردة، أو محرف تحكم خامًا. تتوقف الأداة وتخبرك بدل أن تخمّن.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/enc/json-string-escape

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/enc/json-string-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Say \"hello\"\\n"}'
{
  "text": "Say \"hello\"\\n"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.json_string_escape",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

تحوّل أداة تهريب سلاسل JSON هذه النص العادي إلى الصيغة المُهرَّبة المطلوبة داخل قيمة سلسلة JSON، وتعكس نفس التعيين عندما تلصقون محتوىً مُهرَّبًا ليعود إلى محارف عادية. تعيد الترميز كتابة علامات الاقتباس المزدوجة والشرطات المائلة العكسية ومحارف التحكم بحيث يمكن لحمولة مبنية يدويًا أو قالب أو سطر سجل أن يجلس بأمان بين اقتباسات JSON دون كسر المستند المحيط. يقبل فك التهريب تهريبات JSON القياسية — الاقتباس، والشرطة المائلة العكسية، والشرطة الاختيارية، والصيغ القصيرة ل backspace وform-feed والسطر الجديد والإرجاع وtab، وتهريبات u ذات أربعة أرقام — ويفشل بصراحة عند التسلسلات الناقصة أو أزواج الشرطة غير القانونية أو علامات الاقتباس المزدوجة الخام داخل المحتوى أو محارف التحكم غير المُهرَّبة، حتى لا تصل أخطاء الكتابة بصمت إلى الإنتاج.

ما تهريب سلاسل JSON وما الذي تعيده هذه الأداة

يجب أن تظهر علامة الاقتباس المزدوجة الحرفية كزوج شرطة-اقتباس، ويجب مضاعفة الشرطة المائلة العكسية الحرفية، ويجب كتابة كل محرف تحكم من U+0000 إلى U+001F كتهريب قصير إن وُجد وإلا كتهريب u بأربعة أرقام. تُحدَّد قيمة سلسلة JSON بعلامات اقتباس مزدوجة، والمحارف التي قد تظهر بين تلك الاقتباسات مقيّدة بمعيار ECMA-404 وقواعد JSON.stringify الشائعة عبر اللغات. تنفّذ هذه الصفحة مجموعة الترميز تلك على مسار encode والعكس على decode: الاستجابة هي محتوى السلسلة فقط دون إضافة أو إزالة الاقتباسات الخارجية لمستند JSON كامل. بخلاف محلّل JSON كامل، لا تتحقق هذه الصفحة من الكائنات أو المصفوفات أو الأرقام أو البنى المتداخلة؛ تجيب فقط على عقد تهريب محتوى السلسلة. تتضمن استجابة JSON دائمًا result للسلسلة المحوّلة وmode الذي يعكس encode أو decode وencoding ثابتًا على json_string وinput_length مع output_length حتى تتمكن الاختبارات من التحقق من الأحجام. يبلّغ encode أيضًا عن escapes_applied وdecode عن escapes_resolved لتأكيد عدد المحارف الخاصة أو تسلسلات التهريب التي أُعيدت كتابتها. لا يوجد تخطٍ صامت جزئي لتسلسل مكسور: إما أن يكون كل زوج بشرطة JSON قانونيًا أو يفشل الطلب ب invalid_input.

كيف يُقرأ text وmode وكيف تبقى النتائج قابلة للتكرار

يمسح decode التسلسلات التي تبدأ بشرطة: الاقتباس والشرطة المائلة العكسية والشرطة والصيغ القصيرة الخمس للتحكم وu متبوعًا بأربعة أرقام ست عشرية بالضبط. الحقل المفضّل في الحمولة هو text مع الأسماء البديلة input وvalue وs وpayload حتى تعيد النماذج وسلاسل الاستعلام وعملاء SDK استخدام العقد نفسه دون إعادة تسمية الأعمدة. الوضع mode افتراضيًا encode ويقبل decode صراحة؛ وتُطابق الأسماء البديلة op وdirection وaction نفس المفتاح للنصوص البرمجية التي تستخدم تلك الأسماء، ويُقبل escape أو unescape كمرادفين. يمر encode على السلسلة بوحدات رموز UTF-16 ويستبدل فقط المحارف التي يتطلب JSON تهريبها، تاركًا الحروف والأرقام وUnicode العادي دون تغيير ليبقى النص المقروء مقروءًا. ولأن الشرطة المائلة العكسية تُعاد كتابتها في نفس المرور من اليسار إلى اليمين مع الاقتباسات والتحكم، تحصلون على مرور تهريب واحد متسق مع قواعد محارف JSON.stringify لمحتوى السلسلة. شرطة نهائية ناقصة أو تهريب قصير خارج مجموعة JSON أو تهريب u بلا أربعة أرقام ست عشرية أو اقتباس مزدوج خام أو محرف تحكم غير مُهرَّب يرفع invalid_input برسالة تسمي المشكلة. سقف الطول البالغ مئة ألف محرف يبقي ذاكرة Worker متوقعة مع تغطية القوالب وحمولات العينات ومعظم لوحات اللصق. اقرنوا التشغيل المجاني في المتصفح على هذه الصفحة بالواجهة المسعّرة عندما تحتاجون نفس التعيين داخل مسار آلي دون إعادة تنفيذ جداول تهريب JSON بأنفسكم. تُرجع المدخلات غير الصالحة invalid_input ولا تُحاسب، ما يبقي التحقق رخيصًا بينما تظل التحويلات الناجحة بسعر ثابت لكل عنصر $0.002.

أين يناسب تهريب وإلغاء تهريب سلاسل JSON سير عمل المطوّرين

يفك كتّاب المسارات تهريب الصادرات الثقيلة من أنظمة قديمة حتى يعمل كود التطبيق مع أسطر جديدة واقتباسات حقيقية بدل تسلسلات حرفية من نوع شرطة-n. اقرنوها بترميز النسبة المئوية لعناوين URL أو بمساعدات كيانات XML عند الحاجة إلى تحويلات نص أوسع، وبنقاط ترميز أخرى عند بناء مختبر صغير من أدوات مجانية حتمية ل CI والتوثيق. تُرمّز فرق الواجهة الأمامية والخلفية العناوين والتسميات الديناميكية قبل وضعها داخل حقل JSON مقتبس حتى لا تكسر علامة اقتباس واحدة أو شرطة مائلة عكسية أو سطر جديد المستند المحيط. يولّد مهندسو الجودة أزواج encode وdecode حتمية لاختبارات العقد حتى لا يبدّل وسيط يدّعي دعم سلاسل JSON بصمت جدول تهريب غير قياسي بين الإصدارات. يستخدم المعلّمون الأداة نفسها عند شرح الفرق بين مستند JSON كامل وقيمة سلسلة JSON والمجموعة الصغيرة من التهريبات التي تسمح بها المواصفة داخل تلك القيمة. على هذه الصفحة يجري العمل بالكامل في متصفحكم؛ وعبر الواجهة البرمجية يكلف كل استعلام ناجح $0.002، ولا تُحاسب فشل التحقق، ولا يُخزَّن شيء بعد إرجاع الاستجابة. هذا التقسيم — استكشاف تفاعلي مجاني وواجهة بنفس السعر — يطابق بقية كتالوج KIT من المستوى A ويتيح الانتقال من عرض تعليمي إلى مسار آلي دون تغيير النتيجة المُهرَّبة.

محتوى آمن في حقول JSON

هرّبوا العناوين والرسائل ومقتطفات المستخدم حتى لا تكسر علامات الاقتباس والشرطات المائلة العكسية والأسطر الجديدة قيمة سلسلة JSON مبنية يدويًا أو من قالب.

تنظيف ال fixtures والسجلات

افكّوا تهريب سلاسل JSON من السجلات أو الصادرات أو الملفات الذهبية إلى Unicode عادي لفروق مقروءة وكود تطبيق.

أزواج CI حتمية

ولّدوا أزواج encode وdecode قابلة للتكرار لاختبارات الوحدة وفحوص العقد والوسيط الذي يجب أن يطابق قواعد سلسلة JSON.stringify.

كم تكلفة أداة تهريب سلاسل JSON؟

هي مجانية في متصفحكم على هذه الصفحة. عبر الواجهة البرمجية يكلف الطلب الناجح $0.002؛ والمدخلات غير الصالحة لا تُحاسب.

ما الأوضاع المدعومة؟

mode=encode (الافتراضي) يحوّل النص العادي إلى تهريبات سلسلة JSON. mode=decode يعيد تلك التهريبات إلى محارف.

ماذا يحدث إذا كان التهريب ناقصًا أو غير قانوني؟

يفشل decode ب invalid_input. تُرفض الشرطات المنفردة وحروف التهريب غير JSON وصيغ \u السيئة والاقتباسات الخام والتحكم غير المُهرَّب.

اطّلع على توثيق KIT الكامل ←