ivnjavascript, нет, проблема в другом:
У вас в json
{
"errors": x,
"success": false
}
на место x вкладывается
в виде строки ещё один json
{
"count": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
],
"email": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
],
"count_man": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
]
}
Из-за чего возникает
двойное переэкранирование (\\) и необходимость декодировать сначала ответ, а затем ещё и параметр.
Должно быть так:
{
"errors": {
"count": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
],
"email": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
],
"count_man": [
{
"message": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.",
"code": "required"
}
]
},
"success": false
}
а не как у вас, тогда можно будет спокойно работать с объектом.
Конкретно же \uXXXX, как выше заметили - это стандартная юникод кодировка, при декодировании json браузером прозрачно становится обычной javascript строкой и не требует никаких дополнительных действий.