"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تجنب الهروب غير المقصود من HTML وJSON في قوالب Go؟

كيفية تجنب الهروب غير المقصود من HTML وJSON في قوالب Go؟

تم النشر بتاريخ 2024-11-09
تصفح:752

How to Avoid Unintended Escaping of HTML and JSON in Go Templates?

الهروب من HTML وJSON في قوالب Go

في قوالب Go، من الضروري التعامل مع HTML وJSON بشكل صحيح لمنع الهروب غير المقصود. خذ بعين الاعتبار القالب التالي:

 {{ .SomeOtherHTML }} 

إذا كنت تتوقع أن يكون الإخراج ببساطة ، فأنت قد يواجه مشكلة حيث يتم هروب الأحرف الخاصة مثل

 <the_other_html/< 

حل الهروب من HTML

لمنع ذلك، يجب عليك تمرير كود HTML كقالب. نوع HTML بدلاً من سلسلة. template.HTML هو نوع خاص يأمر Go بعدم الهروب من محتواه. على سبيل المثال:

tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
tplVars := map[string]interface{} {
    "Html": template.HTML("

Paragraph

"), "String": "

Paragraph

", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars)

حل JSON Escaping

إذا كنت بحاجة أيضًا إلى عرض JSON، فيجب عليك استخدام json. وظيفة مارشال لتحويلها إلى صفيف بايت. وهذا يمنع Go من الهروب من محتوى JSON. على سبيل المثال:

jsonBytes, _ := json.Marshal(data)
outputString := string(jsonBytes)

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

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3