Это мой тестовый код. Просто создайте простой http-сервер. Затем, генерируя данные json, это значение равно "&". Но результат - это то, чего я не хочу. Результат ниже кода.
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
func testFunc(w http.ResponseWriter, r *http.Request) {
data := make(map[string]string)
data["key"] = "&"
bytes, err := json.Marshal(data)
if err != nil {
fmt.Fprintln(w, "generator json error")
} else {
//print console
fmt.Println(string(bytes))
fmt.Println("&")
//print broswer
fmt.Fprintln(w, string(bytes))
fmt.Fprintln(w, "&")
}
}
func main() {
http.HandleFunc("/", testFunc)
err := http.ListenAndServe(":9090", nil)
if err != nil {
log.Fatal("ListenAndServe", err)
}
}
Результат: Браузер Chrome:
{ "ключ": "\ u0026" }
&
Консоль также показывает:
{ "ключ": "\ u0026" }
&
Когда " &" не находится в json, браузер и консоль будут печатать " &".