كيفية تهريب نص لاستخدامه في JSON
- اختر الوضع: تهريب أو إلغاء التهريب أو تحويل JSON إلى نص أو تحليل النص إلى JSON.
- اكتب المدخلات أو الصقها؛ تظهر النتيجة فورًا. عند التهريب، حدّد ما إذا كنت تريد إضافة علامات الاقتباس المحيطة، وما إذا كنت تريد كتابة الأحرف غير ASCII بصيغة
\uXXXX. - انسخ النتيجة، أو اضغط تبديل لعكس العملية والتأكد من أن التحويل ذهابًا وإيابًا يعيد النص نفسه.
تسلسلات الهروب في JSON
| الحرف | بعد التهريب |
|---|---|
علامة اقتباس مزدوجة " | \" |
شرطة مائلة عكسية \ | \\ |
| تغذية السطر (سطر جديد) | \n |
| إرجاع العربة | \r |
| علامة Tab | \t |
| Backspace، تغذية الصفحة (form feed) | \b، \f |
| أحرف التحكم الأخرى U+0000–U+001F | \u0000 … \u001f |
| أي حرف (اختياري) | \uXXXX، مثل é ← \u00e9، 😀 ← \ud83d\ude00 |
شرطة مائلة / (اختياري) | \/ |
لا تحتاج علامات الاقتباس المفردة إلى تهريب في JSON أبدًا، لأن سلاسل JSON تستخدم دائمًا علامات الاقتباس المزدوجة.
JSON المحوّل إلى نص (Stringified JSON)
JSON المحوّل إلى نص هو مستند JSON مخزَّن داخل سلسلة JSON – مثل حقل API بالشكل "payload": "{\"id\":7}"، أو JSON محفوظ في عمود قاعدة بيانات أو متغير بيئة أو سطر سجل. ينشئ وضع تحويل JSON إلى نص سلسلة كهذه من مستند، ويفك وضع تحليل النص إلى JSON غلافها حتى لو حُوّلت إلى نص مرتين، ثم ينسّق النتيجة.
- JavaScript: يهرّب
JSON.stringify(text)النص، ويفكJSON.parse(literal)تهريبه. - Python:
json.dumps(text)وjson.loads(literal). - PHP:
json_encode($text)وjson_decode($literal).
الأسئلة الشائعة
ما الأحرف التي يجب تهريبها في JSON؟
فقط علامة الاقتباس المزدوجة والشرطة المائلة العكسية وأحرف التحكم من U+0000 إلى U+001F، مثل فواصل الأسطر وعلامات Tab. أما كل ما عدا ذلك – بما في ذلك الحروف العربية و é و 中 والرموز التعبيرية – فيمكن أن يظهر كما هو في JSON بترميز UTF-8.
لماذا أرى \u0639 بدلًا من الحرف «ع»؟
تكتب بعض البرامج كل حرف غير ASCII، ومنها الحروف العربية، كتسلسل هروب \uXXXX. الصيغتان تعنيان الشيء نفسه؛ ويعيد وضع «إلغاء التهريب» هذه التسلسلات إلى نص مقروء.
ما الفرق بين التهريب والتحويل إلى نص (stringify)؟
يحوّل التهريب أي نص إلى سلسلة JSON حرفية. أما التحويل إلى نص (stringify) فيتحقق أولًا من أن المدخلات JSON صالح، ثم يصغّره ويهرّبه، فتكون النتيجة سلسلة نصية تحتوي على مستند JSON.
هل يمكنني فك تهريب سلسلة بدون علامات الاقتباس الخارجية؟
نعم. الصق المحتوى مع علامات الاقتباس المحيطة أو بدونها؛ كما تُقبل علامات الاقتباس العارضة غير المهرَّبة وفواصل الأسطر الحقيقية.