Ваш ввод не является допустимым JSON. В спецификации JSON указано, что
Все кодовые точки могут быть помещены в кавычки, кроме кодовых точек, которые должны быть экранированы: кавычка (U + 0022), обратный солидус (U + 005C) и контрольные символы от U + 0000 до U + 001F .
Кроме того, хотя существуют двухсимвольные escape-последовательности, \x
не является одной из них, и, следовательно, он правильно интерпретируется как недопустимая escape-последовательность синтаксическим анализатором Go. Если вы хотите иметь литерал с обратной косой чертой в вашем JSON, он должен быть представлен \\
в самом вводе JSON. Смотрите измененную версию вашего примера: https://play.golang.org/p/JZdPJGpPR5q
(обратите внимание, что это не проблема с строковым литералом Go, поскольку вы уже используете необработанный (``
) строковый литерал - сам JSON должен иметь две обратные косые черты.)