golang json marshal将标签转换为utf符号

时间:2014-12-15 13:31:20

标签: go

如何防止<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"}

playground

1 个答案:

答案 0 :(得分:5)

这已在this question中解释。简而言之 - 如果你需要保留这些字符,你可以创建自己的Marshaller实现,但即使编码json输出也是一个完全有效的,不应该破坏任何东西。