lelvisl
@lelvisl

Как заставить json в golang не подменять &?

q=20971520
f.Value = fmt.Sprintf("INTERNET?POSTpaid=%d/8&PREpaid=%d/8", q, q)

печатаю f.Value, получаю что хочу INTERNET?POSTpaid=20971520/8&PREpaid=20971520/8

маршалю f, получаю

"Value":"INTERNET?POSTpaid=20971520/8\u0026PREpaid=20971520/8"

Не могу придумать как заэкраниовать. Или что делать вообще

`json:",string"` не помогает
  • Вопрос задан
  • 798 просмотров
Пригласить эксперта
Ответы на вопрос 2
Winsik
@Winsik
сис.админ, недопрограммист :)
https://golang.org/pkg/encoding/json/#Marshal
"String values encode as JSON strings coerced to valid UTF-8, replacing invalid bytes with the Unicode replacement rune. The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e" to keep some browsers from misinterpreting JSON output as HTML. Ampersand "&" is also escaped to "\u0026" for the same reason. "
Ответ написан
Комментировать
akzhan
@akzhan
Либо сделать замену последовательностей Unicode в результате, либо, что лучше, использовать JSON не из коробки.

Посмотрите на https://github.com/mailru/easyjson, например.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы