tmp := DemoJson{
Data: "&&& | <<< | >>>",
}
raw, _ := json.Marshal(tmp)
fmt.Println(string(raw))
运行上述代码,得到的结果是:
可以看到,对于字符:&
<
>
分别转义成了: \u0026
\u003c
\u003e
ctx := struct {
Data string
}{}
ctx.Data = "&&& | <<< | >>>"
var bb bytes.Buffer
en := json.NewEncoder(&bb)
en.SetEscapeHTML(false)
en.Encode(ctx)
fmt.Println(string(bb.Bytes()))
import json
if __name__ == '__main__':
print("带有特殊字符的 json 对象转为 str:")
data = {
"Rules": {
"CharacterType": "spec",
"Choices": "&&&&<><><><"
}
}
print(json.dumps(data, ensure_ascii = False))
print('=' * 16)
print("带有特殊字符的 json str 转为 json 对象:")
rsp = """
{"Rules": {"CharacterType": "spec", "Choices": "\u0026\u0026\u0026\u0026\u003c\u003e\u003c\u003e\u003c\u003e\u003c"}}
"""
obj = json.loads(rsp)
print(obj)
print(obj['Rules']['Choices'])
if __name__ == '__main__':
print("带有特殊字符的 json 对象转为 str:")
data = {
"Rules": {
"CharacterType": "spec",
"Choices": "&&&&<><><><"
}
}
print(json.dumps(data))
print('=' * 16)
print("使用 html 显式转义,以确保&<>可以被安全的嵌入 HTML 页面内:")
print(html.escape(json.dumps(data)))
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。