色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json 轉義字符

錢艷冰2年前8瀏覽0評論

golang中使用json進行數(shù)據(jù)交互時,可能會出現(xiàn)需要進行轉義的字符,比如雙引號、反斜杠等。這些特殊字符需要進行轉義才能正常傳輸并被解析。

例子1:
package main
import (
	"encoding/json"
	"fmt"
)
func main() {
	data := "\"test string\""
	jsonStr, _ := json.Marshal(data)
	fmt.Println(string(jsonStr))
}
// 輸出:
// "\"test string\""
例子2:
package main
import (
	"encoding/json"
	"fmt"
)
func main() {
	data := `c:\test\a\`
	jsonStr, _ := json.Marshal(data)
	fmt.Println(string(jsonStr))
}
// 輸出:
// "c:\\test\\a\\"

在golang中,需要轉義的字符包括:

字符      轉義
"         \"
\         \\
/         \/
\b        \b
\f        \f
\n        \n
\r        \r
\t        \t

如果不想進行轉義,可以使用json.RawMessage類型,如:

package main
import (
	"encoding/json"
	"fmt"
)
func main() {
	data := `{"name": "test", "age": "18"}`
	rawData := json.RawMessage(data)
	jsonStr, _ := json.Marshal(map[string]interface{}{
"data": rawData,
	})
	fmt.Println(string(jsonStr))
}
// 輸出:
// {"data":{"name": "test", "age": "18"}}

使用json.RawMessage類型時,需要注意:

  • 字段值需要是json字符串
  • 在進行json解析時,需要使用json.RawMessage類型進行解析,否則會被當做字符串進行解析。