1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-29 12:11:28 +00:00

serverJson Supoort 中文编码

This commit is contained in:
astaxie 2013-08-06 16:37:41 +08:00
parent 4ecb9cc30b
commit e47a147c3b
2 changed files with 18 additions and 1 deletions

View File

@ -214,13 +214,16 @@ func (c *Controller) Abort(code string) {
panic(code) panic(code)
} }
func (c *Controller) ServeJson() { func (c *Controller) ServeJson(encoding ...bool) {
content, err := json.MarshalIndent(c.Data["json"], "", " ") content, err := json.MarshalIndent(c.Data["json"], "", " ")
if err != nil { if err != nil {
http.Error(c.Ctx.ResponseWriter, err.Error(), http.StatusInternalServerError) http.Error(c.Ctx.ResponseWriter, err.Error(), http.StatusInternalServerError)
return return
} }
c.Ctx.ResponseWriter.Header().Set("Content-Type", "application/json;charset=UTF-8") c.Ctx.ResponseWriter.Header().Set("Content-Type", "application/json;charset=UTF-8")
if len(encoding) > 0 && encoding[0] == true {
content = []byte(stringsToJson(string(content)))
}
c.writeToWriter(content) c.writeToWriter(content)
} }

View File

@ -232,3 +232,17 @@ func ParseForm(form url.Values, obj interface{}) error {
} }
return nil return nil
} }
func stringsToJson(str string) string {
rs := []rune(str)
jsons := ""
for _, r := range rs {
rint := int(r)
if rint < 128 {
jsons += string(r)
} else {
jsons += "\\u" + strconv.FormatInt(int64(rint), 16) // json
}
}
return jsons
}