Escape وUnescape في JSON: التعامل الصحيح مع البيانات المتداخلة

2024-04-15

تخزن بعض الأنظمة JSON كنص داخل JSON. فهم قواعد الهروب ضروري لفك هذه الحمولات دون كسر البيانات.

محارف يجب تهريبها

داخل النصوص يجب تهريب " و \ ومحارف التحكم مثل \n و\t.

{
  "quote": "He said \"Hello\"",
  "path": "C:\\temp\\data"
}

JSON متداخل كنص

حلّل الطبقة الخارجية أولًا، ثم نفّذ JSON.parse على الحقل النصي الداخلي.

{ "payload": "{\"id\":1,\"name\":\"Alice\"}" }

الهروب المزدوج في السجلات

لا تعد الشرطات العكسية يدويًا—كرر التحليل حتى تصل إلى كائن أو إلى النص المتوقع.

فك هروب آمن

استخدم JSON.parse بدل regex replacements. وبعد التحليل تحقّق من البنية خاصة مع بيانات غير موثوقة.

سياقات أخرى (SQL وshell)

هروب JSON ليس هو اقتباس SQL أو shell. أنشئ الكائن ثم JSON.stringify ثم طبق هروب السياق الهدف.

سير عمل موصى به

الصق → حلّل → نسّق → حلّل الحقول النصية المتبقية → تحقق الأعمال.