如何防止<p>
中的\u003cp\u003e
转换为json.Marshal
?
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string
}
func main() {
user := User{Name: "<p>Frank</p>"}
b, err := json.Marshal(&user)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(user)
fmt.Println(string(b))
}
输出:
{<p>Frank</p>}
{"Name":"\u003cp\u003eFrank\u003c/p\u003e"}
答案 0 :(得分:5)
这已在this question中解释。简而言之 - 如果你需要保留这些字符,你可以创建自己的Marshaller实现,但即使编码json输出也是一个完全有效的,不应该破坏任何东西。