我正在尝试使用Go将一些JSON发布到服务器,其中特殊字符(如&andand)必须在我发送的JSON字符串中完好无损地存在.
http://play.golang.org/p/bPt9kl88-y
package main
import (
"fmt"
"encoding/json"
)
func main() {
type TransactionStatement struct {
Query string
}
statement := &TransactionStatement{
Query: "my query with this & that",
}
data, _ := json.Marshal(statement)
fmt.Printf("> %v", string(data))
}
Run Code Online (Sandbox Code Playgroud)
Go的json.Marshal正在将某些字符(如'&')转换为unicode.哪个好:
字符串值编码为强制为有效UTF-8的JSON字符串,用Unicode替换符号替换无效字节.尖括号"<"和">"被转义为"\ u003c"和"\ u003e",以防止某些浏览器将JSON输出误解为HTML.出于同样的原因,Ampersand"&"也被转移到"\ u0026".大段引用
它可能听起来很荒谬,但我发送的JSON是使用RESTful端点进行数据库查询,其中这个文字字符串将用于执行自由文本数据库查询 - 所以我不能使用unicode,因为它按字面解释.
那么有什么方法可以防止这种转换为unicode?或者我只需要在编组完成后撤消这些替换?
谢谢
| 归档时间: |
|
| 查看次数: |
1790 次 |
| 最近记录: |