"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो टेम्प्लेट्स में HTML और JSON के अनपेक्षित पलायन से कैसे बचें?

गो टेम्प्लेट्स में HTML और JSON के अनपेक्षित पलायन से कैसे बचें?

2024-11-09 को प्रकाशित
ब्राउज़ करें:625

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

गो टेम्प्लेट में HTML और JSON से बचना

गो टेम्प्लेट में, अनपेक्षित पलायन को रोकने के लिए HTML और JSON को ठीक से संभालना आवश्यक है। निम्नलिखित टेम्पलेट पर विचार करें:

 {{ .SomeOtherHTML }} 

यदि आप उम्मीद करते हैं कि आउटपुट केवल होगा, तो आप उस समस्या का सामना करना पड़ सकता है जहां

 <the_other_html/< 

HTML एस्केपिंग के लिए समाधान

इसे रोकने के लिए, आपको HTML कोड को एक स्ट्रिंग के बजाय टेम्पलेट.HTML प्रकार के रूप में पास करना चाहिए। template.HTML एक विशेष प्रकार है जो गो को इसकी सामग्री से बचने का निर्देश देता है। उदाहरण के लिए:

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 एस्केपिंग के लिए समाधान

यदि आपको भी JSON रेंडर करने की आवश्यकता है, तो आपको json का उपयोग करना चाहिए। मार्शल इसे बाइट सरणी में परिवर्तित करने का कार्य करता है। यह गो को JSON सामग्री से बचने से रोकता है। उदाहरण के लिए:

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

इन सर्वोत्तम प्रथाओं का पालन करके, आप अपने गो टेम्पलेट्स में HTML और JSON का उचित निकास सुनिश्चित कर सकते हैं, जिसके परिणामस्वरूप अनपेक्षित संशोधनों के बिना वांछित आउटपुट प्राप्त हो सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3